﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>External Gurus !</title>
    <description>External Gurus !</description>
    <link>http://www.willydev.net/1only4gurus.aspx</link>
    <docs>http://backend.userland.com/rss</docs>
    <generator>RSS.NET: http://www.rssdotnet.com/</generator>
    <item>
      <title>[VS11]–Visual Studio 11 RC con mas color</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En Febrero de este año Microsoft liberó la versión Beta de Visual Studio cuya interfaz de usuario sorprendió a muchos por su cambio a colores totalmente grises (imagen 1) y alineado con el metro style de Windows 8. La versión RC continúa con el metro style pero basado en el feedback de la comunidad se le ha agregado mayor detalle, y color permitiendo resaltar cosas importantes que están relacionadas con el proceso que este ejecutando el desarrollador (imagen 2). La gente del grupo de producto de &lt;a href="http://blogs.msdn.com/b/visualstudio/archive/2012/05/08/visual-studio-11-user-interface-updates-coming-in-rc.aspx"&gt;Visual Studio ha publicado en su blog un post&lt;/a&gt; que les será de mucho interés y recomiendo leer antes de que empiecen a utilizar el RC del producto.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Imagen 1:&lt;/strong&gt; Visual Studio 11 Beta&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Beta_5F00_7D5E68B5.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Beta" border="0" alt="Beta" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Beta_5F00_thumb_5F00_61D966B2.png" width="644" height="403" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Imagen 2:&lt;/strong&gt; Visual Studio 11 RC&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/RC_5F00_38821EB4.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="RC" border="0" alt="RC" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/RC_5F00_thumb_5F00_4A7E3C74.png" width="644" height="403" /&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=204932" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/05/08/vs11-visual-studio-11-rc-con-mas-color.aspx</link>
      <pubDate>Tue, 08 May 2012 19:22:21 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers]–Deseas algún proyecto de los Rangers de Visual Studio 11 en español?</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En Febrero de este año los VS ALM Rangers publicaron las versiones Beta de sus proyectos para Visual Studio 11, los cuales incluyen en inglés inicialmente guías rápidas, contenido basado en escenarios reales y comunes alrededor del globo, laboratorios y algunos proyectos también incluyen plantillas. El año pasado la comunidad&amp;#160; voto por la localización de 3 guías de Visual Studio 2010 al español ( las cuales están disponibles &lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/03/vs-alm-rangers-resumen-de-gu-237-as-en-espa-241-ol.aspx"&gt;aquí&lt;/a&gt;). Este post es para pedirles que voten por el proyecto de los VS ALM Rangers que desean que sea localizado al español, si el proyecto no existe creen una entrada en &lt;a href="https://visualstudio.uservoice.com/forums/133935-visual-studio-alm-rangers"&gt;Visual Studio ALM Rangers UserVoice&lt;/a&gt;, cuando creen la entrada háganlo de la siguiente manera: Localizar al español la guía + &amp;lt;&amp;lt;RANGER PROJECT&amp;gt;&amp;gt;. &lt;/p&gt;  &lt;p&gt;El nombre del proyecto (&amp;lt;&amp;lt;RANGER PROJECT&amp;gt;&amp;gt;) de los VS ALM Rangers para Visual Studio 11 lo pueden encontrar en el siguiente &lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/02/29/welcome-to-visual-studio-11-alm-rangers-readiness-beta-wave.aspx"&gt;post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para facilitarles el proceso me he tomado la libertad de crear una entrada para los 3 proyectos anteriormente localizados y que muy probablemente deseen que esta nueva versión también este disponible en español, para estos proyectos solo deben ingresar al link expuesto a continuación y votar por el proyecto:&lt;/p&gt;  &lt;p&gt;Para la guía de Arquitectura para Visual Studio 11, ingresen al siguiente &lt;a&gt;link&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para la guía de branching and merging para Visual Studio 11, ingresen al siguiente &lt;a href="http://visualstudio.uservoice.com/forums/133935-visual-studio-alm-rangers/suggestions/2820857-localizar-al-espa%C3%B1ol-la-gu%C3%ADa-branching-and-merging"&gt;link&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para la guía de Visual Studio 11 Quick Reference, ingresen al siguiente &lt;a href="http://visualstudio.uservoice.com/forums/133935-visual-studio-alm-rangers/suggestions/2820861-localizar-al-espa%C3%B1ol-la-gu%C3%ADa-visual-studio-quick-r"&gt;link&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204829" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/05/03/vs-alm-rangers-deseas-alg-250-n-proyecto-de-los-rangers-de-visual-studio-11-en-espa-241-ol.aspx</link>
      <pubDate>Thu, 03 May 2012 04:29:25 GMT</pubDate>
    </item>
    <item>
      <title>Evitando cometer errores en el registro de aplicaciones Windows Phone 7 en el Marketplace (I)</title>
      <description>&lt;p&gt;&lt;img src="http://windowsphoneapps.es/wp-content/uploads/2011/12/apphublogo.png" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El proceso de registro de aplicaciones de Windows Phone 7 en el Marketplace de Microsoft es bastante lento, y cada vez que una aplicación enviada no pasa el corte de registro, debemos resolver los problemas detectados y volver a subir el nuevo fichero xap de la aplicación para que éste pase nuevamente todo el proceso de registro.&lt;/p&gt;  &lt;p&gt;Indudablemente, las primeras veces que desarrollamos aplicaciones corremos el riesgo de cometer errores que sólo evita la experiencia.&lt;/p&gt;  &lt;p&gt;Voy a escribir una serie de entradas donde recoja estos errores y la posible forma de que no caigamos en ellos.&lt;/p&gt;  &lt;p&gt;En esta entrada voy a resumir aquellos puntos o pasos que considero de relevancia y que debemos tener en cuenta a la hora de crear y subir nuestras aplicaciones al Marketplace ya que podríamos evitarnos perder el tiempo y de entrar en un ciclo vicioso de arreglar un fallo, subir, volver a arreglar otro, volver a subir, etc.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Idioma por defecto en nuestras aplicaciones&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es un error más común de lo que parece y corresponde en muchas ocasiones a la falta de observación y por supuesto, las prisas en publicar una aplicación.&lt;/p&gt;  &lt;p&gt;El archivo &lt;em&gt;&lt;strong&gt;AssemblyInfo.cs&lt;/strong&gt;&lt;/em&gt; indica el idioma a utilizar por defecto.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pK3M75m4apXduH66kVXjV6i131AxJGcZigWz-c77Kh6M5mGVEog6nyGVdaMQoMDfWevgM639l-0tOOd8JOxXAAQ/20120501_01.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Dentro de este archivo encontramos esta información:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pK3M75m4apXc9snXY0RE3a5QfaK9RpE0T5oF_limrjH7qEdrDfBQjT3CT714V_UiH2JAVwZuB9-pwBksG3IU-KA/20120501_02.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;También podríamos acceder a ella en la ventana de propiedades y en&lt;strong&gt;&lt;em&gt; Assembly Information...&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pEn-7oiCw7kgiUDYYUr8S_3zcxePaQcclfyVSZmhoKSiUsSp6YcyRHO9b4MXuLHgmAJoHyTUxyaVEO-62xU67oQ/20120501_03.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Aquí encontraremos la información del ensamblado y ahí el idioma por defecto que queremos utilizar en nuestra aplicación.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pEn-7oiCw7kiLc_UVm94SV-ZFnKc8jp1TgBV2RhNznVOELlEIFI7DNDhY0vkt6Z_gq-KNlpPkJix5A4zM-YI5eA/20120501_04.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;El caso es que cuando subimos nuestra aplicación (fichero xap) al Marketplace de Microsoft, éste analiza el fichero xap y de acuerdo a la información del ensamblado, nos indica en la pantalla la información que debemos cumplimentar y el idioma o idiomas en lo que lo podemos hacer.&lt;/p&gt;  &lt;p&gt;Es decir, que si nuestra aplicación es multi-idioma, se nos permitirá indicar la descripción de nuestra aplicación en todos los idiomas para los que está preparada nuestra aplicación.&lt;/p&gt;  &lt;p&gt;Pero aquí entra en juego dos características que debemos tener en cuenta.&lt;/p&gt;  &lt;p&gt;La primera y más evidente es que debemos escribir la descripción corta y ampliada en el mismo idioma que se indica en la pantalla de registro de nuestra aplicación para el Marketplace. Parece evidente, pero a veces no lo es tanto.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pEn-7oiCw7kicCU0A1etc1v7eO8peV0ZcFuKiIJS5dmH5-DTfJQLOWErNVY_2731QGJ3CymY5dfzKxphBBDus1g/20120501_05.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;La segunda de ellas, es que debemos indicar el idioma correcto.&lt;/p&gt;  &lt;p&gt;Imaginemos que por ejemplo, editamos y modificamos el fichero &lt;strong&gt;&lt;em&gt;AssemblyInfo.cs&lt;/em&gt;&lt;/strong&gt; que indica anteriormente e indicamos erróneamente una cultura, como por ejemplo la que indico en la siguiente imagen:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1paD4f0Z-qyIYxom64JOjClu42NsaCrDhJmEwJb5Ry_KWFBtdM_cDAsKUxAQrH4mBjW2XJQO773GmTN9FCQWMuoA/20120501_06.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;En este caso, aparecerá en la Web del Marketplace un error similar al que se indica a continuación:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pEn-7oiCw7kh2PV5XP3aWAGvArt6c07E6JZhm998WWxoCFQGkz5tyu55IVpxZ1t7SqCMTheaRcthFJcb_Wd0TkQ/20120501_07.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Indudablemente, este error se produce porque la cultura indicada no ha sido encontrada por el Marketplace de Microsoft y por lo tanto, no puede ubicar la aplicación dentro del rango de idiomas permitidos.&lt;/p&gt;  &lt;p&gt;La solución es indicar el idioma correctamente, o utilizar en su caso el idioma correcto que queremos utilizar.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.sn2.livefilestore.com/y1pK3M75m4apXdmQNMK7iyL2V5g7ILsStf9_H3_wJJV79c4EzsVbv-wXifA7a_wmCV4I7wUTaGhGKWXcejVXFbAJg/20120501_08.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;De esta manera y siguiendo estas normas básicas, podremos estar preparados para subir correctamente nuestras aplicaciones al Marketplace de Microsoft sin esperar a que la Web del Marketplace nos devuelva un error o a que el proceso de validación de nuestra aplicación no pase y nos indiquen que nuestra aplicación no ha pasado la certificación.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Espero que sea de utilidad.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204752" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/05/01/evitando-cometer-errores-en-el-registro-de-aplicaciones-windows-phone-7-en-el-marketplace-i.aspx</link>
      <pubDate>Tue, 01 May 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Especificación del formato VHDX v0.95</title>
      <description>&lt;p&gt;&lt;img src="http://msdnrss.thecoderblogs.com/wp-content/plugins/wp-o-matic/cache/ee96b_1351.image_5F00_122C80A6.png" width="297" height="327" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Microsoft ha liberado recientemente el documento en versión 0.95 de la Especificación del formato VHDX.&lt;/p&gt;  &lt;p&gt;Recordemos que el formato VHDX (Virtual Hard Disk Format) corresponde con la virtualización de discos por parte de Microsoft.&lt;/p&gt;  &lt;p&gt;El documento escrito en inglés y en formato Microsoft Word tiene un peso de poco más de 450 Kb y puede ser descargado &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29681"&gt;desde este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Esta nueva versión es posible que esté apareciendo debido a que Microsoft según algunos rumores, estaría trabajando ultimando su Hyper-V v3.0 así como mejoras en los discos duros virtuales (VHDX) que para la próxima versión de Windows, Windows 8, llegarían a soportar hasta 16 Tb.&lt;/p&gt;  &lt;p&gt;El documento que indico en esta entrada tiene que ver con la última revisión del formato, y siendo una revisión muy cercana a la versión 1.0, dudo que su contenido varíe extraordinariamente de la futura y definitiva versión 1.0 del documento.&lt;/p&gt;  &lt;p&gt;Espero que le sea útil a alguien en el caso de necesitar abrir, conocer o interpretar los discos duros virtuales de Microsoft.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204745" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/30/especificaci-243-n-del-formato-vhdx-v0-95.aspx</link>
      <pubDate>Mon, 30 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Lo que debes hacer al empezar con Windows Phone</title>
      <description>&lt;p&gt;&lt;img src="http://thetechnoclub.com/post/wpsec.jpg" width="147" height="148" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Microsoft ha publicado un documento en formato Microsoft Word de apenas 300 Kb y en inglés, que contiene unas recomendaciones para trabajar de forma inteligente cuando los empleados de una empresa (y usuarios no corporativos) empiezan a utilizar terminales dotados de Windows Phone.&lt;/p&gt;  &lt;p&gt;En este documento de apenas 5 páginas, se realizan algunas recomendaciones que debemos seguir.&lt;/p&gt;  &lt;p&gt;Entre estas recomendaciones (algunas de ellas realmente básicas), están las de establecer una contraseña de 4 dígitos, la configuración de Microsoft Outlook Mobile para sincronizar el mail, calendario y contactos con Microsoft Exchange, algunas recomendaciones respecto al bloqueo de la pantalla inicial, lo que debemos hacer para localizar un teléfono móvil perdido, lo que debemos hacer para reportar que hemos perdido o nos han robado un terminal, etc.&lt;/p&gt;  &lt;p&gt;Podrás acceder a la descarga de este documento &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29292"&gt;en 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=204692" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/28/lo-que-debes-hacer-al-empezar-con-windows-phone.aspx</link>
      <pubDate>Sat, 28 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Estrategias para prevenir rechazos de tu app en el Marketplace de Windows Phone 7</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/04/27/estrategias-para-prevenir-rechazos-de-tu-app-en-el-marketplace-de-windows-phone-7.aspx" scrolling="no" frameborder="0" style="border:none; width:130px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Con el pasar del tiempo y las consultas que me han hecho, he recopilado los motivos más frecuentes por los cuales una app de WP7 es rechazada para acceder al Markeplace (mp) después de subirla a través del AppHub. Este post recopila estos motivos y su solución.&lt;/p&gt;      &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;1. Marcas y logos registrados:&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Cuando se usan dentro de la aplicación marcas y logos reconocidos, nos pueden devolver la app para que indiquemos si tenemos permiso para usarlos. Esto se puede indicar en el último paso del proceso de subida de la app, en el espacio que dice Test Notes:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3010.image_5F00_4BEF071D.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3823.image_5F00_thumb_5F00_6A594806.png" width="756" height="104" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Estas notas deben ir en inglés y tal como lo recomiendo en el ejemplo, se debe indicar que la empresa dio los permisos adecuados, así como los datos de la persona de contacto que se podría requerir para certificar este permiso.&lt;/p&gt;      &lt;p&gt;&lt;b&gt;2. Uso de GPS&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;El uso de GPS como es bien sabido, interviene con la privacidad del usuario, pues se podría comenzar a reportar la ubicación de un usuario sin que este lo haya permitido. Es por esto que si empleamos el api de localización en nuestras apps, debemos proveer claramente un mecanismo para desactivar estas funcionalidades. Además cuando lo hagamos, la aplicación debe seguir funcionando correctamente. Además de esto, se debe proveer una política de empleo de la información de la localización que explique perfectamente al usuario para qué serán usados los datos, de manera que él pueda comprender las implicaciones de autorizar el empleo del GPS en la app. Esta política puede estar incluida en la app, o ser un link a algún recurso externo. Acá les escribo un ejemplo de política:&lt;/p&gt;      &lt;p&gt;&lt;i&gt;La aplicación xxxxx ofrece servicios avanzados de búsqueda, basados en la ubicación del usuario. Los datos de ubicación del usuario son usados exclusivamente para este fin y nunca son compartidos. Sin embargo, si el interés del usuario es que esta aplicación no haga uso de los servicios de localización del teléfono, éstos se pueden deshabilitar en el menú de ajustes de la aplicación; en este caso la utilidad de búsqueda por cercanía quedará deshabilitada y la aplicación continuará funcionando correctamente.&lt;/i&gt;&lt;/p&gt;      &lt;p&gt;En este caso deberá de existir un menú de ajustes, donde se puedan deshabilitar estas características:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1854.image_5F00_5A6A0342.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6153.image_5F00_thumb_5F00_0712BD1C.png" width="258" height="57" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;3. Screenshots&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Los Screenshots preferiblemente (obligación por ser la mejor opción) se han de capturar desde el emulador que tiene una utilidad para tomar estos screenshots.&lt;/p&gt;      &lt;p&gt;Pero con el emulador sucede que a veces puede estar mostrando el framerate de las imágenes que está mostrando. Si capturamos con esta opción habilitada, nuestra app será rechazada, porque estos elementos no pueden aparecer en los screenshots:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1351.image_5F00_4A7ABE7E.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6253.image_5F00_thumb_5F00_7E42B4CF.png" width="240" height="222" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Esta opción por defecto viene habilitada, así que a la hora de hacer la captura la deshabilitamos desde el archivo: &lt;i&gt;App.xaml.cs&lt;/i&gt;:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7723.image17_5F00_6878CC72.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3426.image17_5F00_thumb_5F00_059E747D.png" width="664" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Basta solo con poner EnableFrameRateCounter en false.&lt;/p&gt;      &lt;p&gt;&lt;b&gt;4. Lenguaje por defecto de la app&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Cuando creamos una app de WP7, el lenguaje por defecto de la misma está establecido en Inglés. Es por esto que cuando la subimos, el App Hub, allí esperan que pongamos una descripción de la App en inglés:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1778.image_5F00_3821D1EF.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7120.image_5F00_thumb_5F00_56F845CD.png" width="532" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Es un error frecuente, porque si efectivamente nuestra app está en español, querremos ponerle descripción en español; pero el App Hub solo nos da la opción de inglés. Así que si ponemos la descripción en un idioma distinto al solicitado, nos rechazarán la app. Como lo mencioné es porque no hemos cambiado la opción de idioma neutral. Para lograrlo, vamos a las propiedades del proyecto y escogemos Assembly Information y allí podremos seleccionar el lenguaje neutral personalizado:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1263.image_5F00_67FC73B0.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5076.image_5F00_thumb_5F00_2132DAA6.png" width="521" height="254" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;De esta manera cuando subamos la app al AppHub, nos aparecerá en este caso el idioma español, para poner la descripción.&lt;/p&gt;      &lt;p&gt;En situaciones más avanzadas queremos ofrecer nuestra app en varios idiomas. En otro post estaré mostrando cómo se logra tener localización de múltiples lenguajes. Por ahora veamos que si hacemos esto bien, cuando carguemos el xap al AppHub, observaremos que habrá una versión de toda la información que tenemos que suministrar, por cada lenguaje que hayamos incluido:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7120.image_5F00_11AFC8D7.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4812.image_5F00_thumb_5F00_5E738F6D.png" width="458" height="212" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Como observamos en este caso, está seleccionado el idioma inglés y en este ponemos la información requerida. Luego seleccionamos español y procedemos escribiendo la información en el lenguaje adecuado. Recordemos que esto solo aplica cuando intencionalmente escogemos tener dos o más lenguajes para nuestras apps.&lt;/p&gt;      &lt;p&gt;Sabiendo que pueden surgir nuevos motivos de rechazo frecuentes, stay tunned, que aquí estaré citándolos y ofreciendo las posibles soluciones.&lt;/p&gt;  &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10298496" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/04/27/estrategias-para-prevenir-rechazos-de-tu-app-en-el-marketplace-de-windows-phone-7.aspx</link>
      <pubDate>Fri, 27 Apr 2012 15:03:25 GMT</pubDate>
    </item>
    <item>
      <title>Microsoft Camera Codec Pack v16.3.1483.0410</title>
      <description>&lt;p&gt;&lt;strong&gt;&lt;img src="http://www.dosbit.com/images/2011/10/Windows-Live-Gallery.png" width="141" height="141" alt="" /&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A la hora de ver ficheros RAW con nuestro sistema operativo Windows, es posible que nos encontremos con que el sistema no es capaz de mostrar correctamente la imagen en pantalla.&lt;/p&gt;  &lt;p&gt;Indudablemente hay productos en el mercado (sobre todo los de retoque fotográfico como Adobe Photoshop) que sí nos permite llevar a cabo esta tarea, pero existen otros que no.&lt;/p&gt;  &lt;p&gt;Microsoft ha creado este pack de codificación precisamente para que podamos combinarlo con Windows Live Photo Gallery y podamos acceder a los ficheros RAW de nuestras cámaras fotográficas.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Sólo con Windows Live Photo Gallery?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Realmente este paquete no es sólo para Windows Live Photo Gallery, sino también para los paquetes Software basados en WIC (Windows Imaging Codecs).&lt;/p&gt;  &lt;p&gt;Es por eso que resulta interesante instalarlo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Qué versiones de Microsoft Camera Codec Pack hay?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Existen dos versiones diferentes de Microsoft Camera Codec Pack, la de 64 bits y la de 32 bits.&lt;/p&gt;  &lt;p&gt;Y dentro de estas versiones, soporte para diferentes lenguajes o idiomas.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Qué formatos RAW soporta?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Esta actualización permite visualizar infinidad de formatos RAW.&lt;/p&gt;  &lt;p&gt;A continuación indico una tabla/resumen del soporte:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;&lt;strong&gt;Canon&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;Digital Rebel XT, Digital Rebel XTi, EOS 10D, EOS 20D, EOS 30D, EOS 40D, EOS 50D Digital, EOS 300D, EOS 350D, EOS 400D, EOS 450D, EOS 500D, EOS 550D, EOS 1000D, EOS 5D, EOS 5D Mark II, EOS 7D Digital, EOS D30, EOS D60, EOS Digital Rebel, EOS Kiss Digital, EOS Kiss Digital N, EOS Kiss Digital X, EOS Kiss F, EOS Kiss X2, EOS Kiss X3, EOS Kiss X4, EOS Rebel T1i, EOS Rebel T2i, EOS Rebel XS, EOS Rebel XSi, EOS-1D, EOS-1D Mark II, EOS-1D Mark II N, EOS-1D Mark III, EOS-1D Mark IV, EOS-1Ds, EOS-1Ds Mark II, EOS-1Ds Mark III, PowerShot G2, PowerShot G3, PowerShot G5, PowerShot G6, PowerShot G9, PowerShot G10, PowerShot G11, PowerShot Pro1, PowerShot S90, PowerShot S95, PowerShot SX1 IS&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Nikon&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;Coolpix P6000, D1H, D2H, D2Hs, D2X, D2Xs, D3, D3s, D3X, D40, D40x, D50, D60, D70, D70s, D80, D90, D100, D200, D300, D300s, D700, D3000, D3100, D5000, D7000&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Sony&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;DSLR-A100, DSLR-A200, DSLR-A230, DSLR-A300, DSLR-A330, DSLR-A350, DSLR-A380, DSLR-A500, DSLR-A550, DSLR-A560, DSLR-A580, DSLR-A700, DSLR-A850, DSLR-A900, Alpha NEX-3, Alpha NEX-5, Alpha NEX-5N, Alpha SLT-A55/A55V, Cyber-shot DSC-R1&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Olympus&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;C-7070 Wide Zoom, C-8080 Wide Zoom, E-1, E-3, E-10, E-20, E-30, E-420, E-450, E-520, E-620, EVOLT E-300, EVOLT E-330, EVOLT E-400, EVOLT E-410, EVOLT E-500, EVOLT E-510, PEN E-P1&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;Pentax&lt;/em&gt;&lt;/strong&gt; (PEF formats only):      &lt;br /&gt;&lt;em&gt;*ist D, *ist DL, *ist DS, K10D, K20D, K100D, K100D Super, K110D, K200D, K-7, K-x&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Leica&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;DIGILUX 3, D-LUX 4, M8, M8.2, M9&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Konica Minolta&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;ALPHA-7 DIGITAL, DiMAGE A1, DiMAGE A2, DYNAX 7D, Maxxum 7D&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;&lt;em&gt;Epson&lt;/em&gt;&lt;/strong&gt;:       &lt;br /&gt;&lt;em&gt;RD1&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;&lt;strong&gt;Panasonic&lt;/strong&gt;&lt;/em&gt;:       &lt;br /&gt;&lt;em&gt;Lumix DMC-G1, Lumix DMC-GH1, Lumix DMC-GF1, Lumix DMC-LX3, Lumix DMC-LX5&lt;/em&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Descarga&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Accederás a este &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26829"&gt;paquete de codificación en este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Recuerda que el paquete de codificación es gratuito.&lt;/p&gt;  &lt;p&gt;Igualmente, podrás &lt;a href="http://windows.microsoft.com/en-US/windows-live/photo-gallery-get-started"&gt;descargar Window Live Photo Gallery de este otro 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=204691" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/27/microsoft-camera-codec-pack-v16-3-1483-0410.aspx</link>
      <pubDate>Fri, 27 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Validando sin parar. Uso de DataAnnotations</title>
      <description>&lt;p&gt;&lt;img src="http://www.wbotelhos.com/stepy/img/image-3.png" width="362" height="215" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como pasa en muchos casos, el otro d&amp;iacute;a me encontraba haciendo pruebecillas e implementando diferentes procesos de validaci&amp;oacute;n en Dtos y entidades.&lt;/p&gt;
&lt;p&gt;Al finalizar mis pruebas, el resultado de todo es un conjunto de clases que hac&amp;iacute;a justo lo que quer&amp;iacute;a respecto a las validaciones.&lt;/p&gt;
&lt;p&gt;Decoraba mis clases y/o miembros como deseaba, y en base a esa decoraci&amp;oacute;n, ejecutaba el proceso de validaci&amp;oacute;n que me permit&amp;iacute;a obtener qu&amp;eacute; miembros no hab&amp;iacute;an cumplido esa validaci&amp;oacute;n y porqu&amp;eacute;.&lt;/p&gt;
&lt;p&gt;Sin embargo, mientras estaba desarrollando todo esto, me ven&amp;iacute;a a la mente que exist&amp;iacute;a &amp;ldquo;&lt;em&gt;algo&lt;/em&gt;&amp;rdquo; para hacer si no esto mismo, s&amp;iacute; algo muy muy similar. No obstante y ya que estaba metido en el fregado, decid&amp;iacute; avanzar por aquello de refrescar/aprender cosas. Cuando acab&amp;eacute; me puse a pensar m&amp;aacute;s profundamente y ca&amp;iacute; en la cuenta de algo que llamaba &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;DataAnnotations&lt;/span&gt;&lt;/em&gt; o similar.&lt;/p&gt;
&lt;p&gt;El caso es que &lt;span style="text-decoration:underline;"&gt;&lt;em&gt;DataAnnotations&lt;/em&gt;&lt;/span&gt; me habr&amp;iacute;a ahorrado mucho tiempo, as&amp;iacute; que aqu&amp;iacute; lo pongo para aquellos que se encuentren en una tesitura parecida y no pierdan el tiempo rehaciendo la rueda como hice yo (si bien nunca viene mal para refrescar/aprender cosas).&lt;/p&gt;
&lt;p&gt;En esta entrada, voy a comentaros en qu&amp;eacute; consiste y como utilizar &lt;span style="text-decoration:underline;"&gt;&lt;em&gt;DataAnnotations&lt;/em&gt;&lt;/span&gt; en vuestros desarrollos de .NET.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;En qu&amp;eacute; consiste DataAnnotations?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;B&amp;aacute;sicamente, &lt;span style="text-decoration:underline;"&gt;&lt;em&gt;DataAnnotations&lt;/em&gt;&lt;/span&gt; nos permite llevar a cabo validaciones de datos de acuerdo a nuestras necesidades. Esas necesidades son decoraciones que indicaremos a los miembros de nuestras entidades y Dtos. Una decoraci&amp;oacute;n corresponder&amp;aacute; a una validaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; ensamblado es el que entra en juego con las clases de DataAnnotations?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para &amp;quot;&lt;em&gt;jugar&lt;/em&gt;&amp;quot; con &lt;span style="text-decoration:underline;"&gt;&lt;em&gt;DataAnnotations&lt;/em&gt;&lt;/span&gt;, deberemos agregar un ensamblado a las referencias de nuestro proyecto. Este ensamblado es &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations&lt;/span&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;C&amp;oacute;mo marcamos el tipo de validaci&amp;oacute;n de un miembro?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Para marcar el tipo de validaci&amp;oacute;n de un miembro, utilizaremos diferentes atributos.&lt;/p&gt;
&lt;p&gt;Estos atributos pueden anidarse de manera que un campo pueda tener m&amp;aacute;s de una validaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Entre estos atributos encontramos los siguientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Required&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.RequiredAttribute&lt;/span&gt;&lt;/em&gt;, marca que el miembro debe tener un campo obligatorio. Esta decoraci&amp;oacute;n puede ser utilizada junto a &lt;em&gt;&lt;strong&gt;ErrorMessage&lt;/strong&gt;&lt;/em&gt; para indicar un mensaje personalizado de error en el caso de que no se cumpla esta validaci&amp;oacute;n. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/em&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.RangeAttribute&lt;/span&gt;&lt;/em&gt;, marca un rango de valores entre los que debe estar comprendido el valor pasado al miembro. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;StringLength&lt;/em&gt;&lt;/strong&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.StringLengthAttribute&lt;/span&gt;&lt;/em&gt;, indica un tama&amp;ntilde;o del campo &lt;em&gt;&lt;strong&gt;string&lt;/strong&gt;&lt;/em&gt;. Esta decoraci&amp;oacute;n puede ir en conjunci&amp;oacute;n con &lt;em&gt;&lt;strong&gt;MinimunLength&lt;/strong&gt;&lt;/em&gt; para indicar incluso un tama&amp;ntilde;o m&amp;iacute;nimo del campo &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;RegularExpression&lt;/em&gt;&lt;/strong&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.RegularExpressionAttribute&lt;/span&gt;&lt;/em&gt;, indica una expresi&amp;oacute;n regulada que debe ser utilizada para validar el miembro. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;DataType&lt;/em&gt;&lt;/strong&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.DataTypeAttribute&lt;/span&gt;&lt;/em&gt;, indica un nombre de un tipo adicional que debe asociarse a un campo de datos. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;CustomValidation&lt;/strong&gt;&lt;/em&gt;: perteneciente a &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;System.ComponentModel.DataAnnotations.CustomValidationAttribute&lt;/span&gt;&lt;/em&gt;, nos permite validar a trav&amp;eacute;s de validaciones personalizadas. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vamos con un ejemplo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Y como siempre, la mejor forma de ver esto en funcionamiento es practicar con un ejemplo.&lt;/p&gt;
&lt;p&gt;Imaginemos la siguiente situaci&amp;oacute;n. Debemos crear un objeto Persona que contendr&amp;aacute; diferentes miembros:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Id&lt;/em&gt;&lt;/strong&gt;: identificador de la entidad. Campo no requerido. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Nombre&lt;/strong&gt;&lt;/em&gt;: nombre de la persona. Campo requerido. Campo de 25 caracteres m&amp;aacute;ximo. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Apellido&lt;/strong&gt;&lt;/em&gt;: apellido de la persona. Campo requerido. Campo de 50 caracteres m&amp;aacute;ximo. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Dni&lt;/strong&gt;&lt;/em&gt;: n&amp;uacute;mero del documento nacional de identidad de la persona. Campo requerido. Campo de m&amp;aacute;s de 1 car&amp;aacute;cter y de hasta 8 caracteres. &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Tel&amp;eacute;fono&lt;/strong&gt;&lt;/em&gt;: n&amp;uacute;mero telef&amp;oacute;nico de la persona. Campo no requerido. Campo de 9 a 13 cifras (aunque vamos a omitir la validaci&amp;oacute;n en este ejemplo). &lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Mail&lt;/strong&gt;&lt;/em&gt;: correo electr&amp;oacute;nico de la persona. Campo no requerido. Validable a trav&amp;eacute;s de una expresi&amp;oacute;n regulada que verifica la validez de una cuenta de correo electr&amp;oacute;nico. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pn5TN1scNwfX_B8iTK26nfPeUtrayvPZz1X_ccKUrO8vQbLPCzmOosMTIcbrKfGBCb7_APcZFgEObFTrV60n0UA/20120426_01.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;De acuerdo a los datos que tenemos, hemos preparado el c&amp;oacute;digo de nuestro objeto &lt;em&gt;Persona&lt;/em&gt; de la siguiente manera:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:500px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.ComponentModel.DataAnnotations;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;sealed&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Persona&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Id { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;     [Required]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;     [StringLength(25)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Nombre { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt;     [Required(ErrorMessage = &lt;span style="color:#006080;"&gt;&amp;quot;No te olvides del apellido&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt;  14:&lt;/span&gt;     [StringLength(50)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Apellido { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt;  17:&lt;/span&gt;     [Required]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt;  18:&lt;/span&gt;     [StringLength(8, MinimumLength = 1)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt;  19:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Dni { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum20"&gt;  20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum21"&gt;  21:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;long&lt;/span&gt; Telefono { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum22"&gt;  22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum23"&gt;  23:&lt;/span&gt;     [RegularExpres*ion(&lt;span style="color:#006080;"&gt;&amp;quot;expression&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum24"&gt;  24:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Mail { get; set; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum25"&gt;  25:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum26"&gt;  26:&lt;/span&gt; } // Persona&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;i&gt;&lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;Nota: &amp;quot;expression&amp;quot; dentro de RegularExpression debe ser reemplazada por la expresi&amp;oacute;n regulada correspondiente. Por alguna raz&amp;oacute;n que desconozco, el sitio me est&amp;aacute; bloqueando la expresi&amp;oacute;n regulada. La indicar&amp;eacute; en los comentarios a esta entrada.&lt;/strong&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Una vez hecho esto, bastar&amp;aacute; con ejecutar una porci&amp;oacute;n de c&amp;oacute;digo que se encargar&amp;aacute; de realizar las siguientes tareas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Crear la entidad Persona. &lt;/li&gt;
&lt;li&gt;Llevar a cabo el proceso de validaci&amp;oacute;n. &lt;/li&gt;
&lt;li&gt;En el caso de que existan errores de validaci&amp;oacute;n, recorrerlos para procesarlos como deseemos. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El c&amp;oacute;digo de ejecuci&amp;oacute;n y demostraci&amp;oacute;n del funcionamiento de la validaci&amp;oacute;n con DataAnnotations quedar&amp;iacute;a de la siguiente manera:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:500px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Creamos un objeto Persona y le agregamos valores&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; Persona persona = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Persona();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; persona.Nombre = &lt;span style="color:#006080;"&gt;&amp;quot;Jos&amp;eacute;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#008000;"&gt;//persona.Apellido = &amp;quot;L&amp;oacute;pez&amp;quot;;&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; persona.Dni = &lt;span style="color:#006080;"&gt;&amp;quot;1112233&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; persona.Mail = &lt;span style="color:#006080;"&gt;&amp;quot;joselopez@dominio.com&amp;quot;&lt;/span&gt;;            &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Proceso de validaci&amp;oacute;n.&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; ValidationContext validationContext = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ValidationContext(persona, &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; List&amp;lt;ValidationResult&amp;gt; errors = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; List&amp;lt;ValidationResult&amp;gt;();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt; Validator.TryValidateObject(persona, validationContext, errors, &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Si hay errores, los recorremos y los mostramos (versi&amp;oacute;n demo).            &lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (errors.Count() &amp;gt; 0)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt;  14:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; errorMessages = &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var error &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; errors)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt;  16:&lt;/span&gt;     {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt;  17:&lt;/span&gt;         errorMessages += error.ErrorMessage + Environment.NewLine;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt;  18:&lt;/span&gt;     }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt;  19:&lt;/span&gt;     MessageBox.Show(errorMessages);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum20"&gt;  20:&lt;/span&gt; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum21"&gt;  21:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum22"&gt;  22:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum23"&gt;  23:&lt;/span&gt;     MessageBox.Show(&lt;span style="color:#006080;"&gt;&amp;quot;Entidad correcta&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum24"&gt;  24:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;En este ejemplo, he querido dejar comentado intencionadamente la asignaci&amp;oacute;n de &lt;em&gt;Apellido&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;De esta manera, la validaci&amp;oacute;n devolver&amp;aacute; un mensaje por pantalla parecido a este:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pTn8ySMMkyKftT2wEWOOYFu38-mtUktUUE1eRHwMx_YHATP5Pc7JVfxeEcaM0QAQI_xS1ZTK7j2hyzXxSetWFhQ/20120426_02.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;El mensaje corresponde con la validaci&amp;oacute;n del campo &lt;em&gt;Apellido&lt;/em&gt; y cuyo mensaje en el caso de no pasar la validaci&amp;oacute;n, hemos querido personalizar con el texto &amp;ldquo;&lt;em&gt;No te olvides del apellido&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Evidentemente, en las otras validaciones tendr&amp;iacute;amos resultados parecidos.&lt;/p&gt;
&lt;p&gt;De hecho, si por ejemplo quitara del correo electr&amp;oacute;nico el car&amp;aacute;cter @ tendr&amp;iacute;a el siguiente resultado:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1p13VXxsGezm6LHwfTYLAYR2E9EeVILkXYeEK-74sUTlWM7SUDrhvE0MCEI2c-_daISFN_Oq5CSSHyMgUb9yuIpA/20120426_03.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Como podemos observar, las validaciones se producen con muy poco esfuerzo.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Extensibilidad a la hora de hacer &lt;em&gt;nuestras propias&lt;/em&gt; validaciones&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si quisi&amp;eacute;ramos extender las validaciones que ofrece .NET y que recoge casi todas las casu&amp;iacute;sticas, no tendr&amp;iacute;amos problemas.&lt;/p&gt;
&lt;p&gt;Bastar&amp;iacute;a con crear nuestros propios atributos y heredar de &lt;a href="http://msdn.microsoft.com/es-es/library/system.componentmodel.dataannotations.validationattribute.aspx"&gt;ValidationAtttribute&lt;/a&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Como podemos ver, trabajar con &lt;em&gt;&lt;span style="text-decoration:underline;"&gt;DataAnnotations&lt;/span&gt;&lt;/em&gt; en nuestros desarrollos, puede resultarnos de utilidad y ahorrarnos mucho trabajo, adem&amp;aacute;s de aportarnos flexibilidad a la hora de desarrollar nuestras propias validaciones personalizadas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204661" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/26/validando-sin-parar-uso-de-dataannotations.aspx</link>
      <pubDate>Thu, 26 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Microsoft Enterprise Library 5.0.1 Integration Pack para Windows Azure</title>
      <description>&lt;p&gt;&lt;img height="175" width="175" src="http://i1-news.softpedia-static.com/images/news2/Download-Hands-On-Labs-for-Enterprise-Library-5-0-Integration-Pack-for-Windows-Azure-2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Informaci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Microsoft ha publicado la versi&amp;oacute;n 5.0.1 de esta extensi&amp;oacute;n para Microsoft Enterprise Library 5.0 que puede ser utilizada con Windows Azure.&lt;/p&gt;
&lt;p&gt;Entre otras caracter&amp;iacute;sticas, este paquete incluye el Autoscaling Application Block (Wasabi), el Transient Fault Handling Application Block (Topaz), un proveedor de configuraci&amp;oacute;n y un configurador de archivos Blob.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enlaces&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Podr&amp;aacute;s acceder a la Web de descarga &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=28189"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Para m&amp;aacute;s informaci&amp;oacute;n sobre Microsoft Enterprise Library 5.0 Integration Pack para Windows Azure, haz clic &lt;a href="http://msdn.microsoft.com/en-us/library/hh680918(v=pandp.50).aspx"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Blog con informaci&amp;oacute;n adicional &lt;a href="http://windowsazurecat.com/2011/02/enterprise-library-on-windows-azure-key-learnings-from-customer-project/"&gt;en 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=204666" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/25/microsoft-enterprise-library-5-0-1-integration-pack-para-windows-azure.aspx</link>
      <pubDate>Wed, 25 Apr 2012 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[PPT] Presentación Novedades SqlServer 2012 BI</title>
      <description>&lt;p&gt;Adjunto el archivo de la presentaci&amp;oacute;n sobre novedades de Inteligencia de negocios en el Sql Server 2012 - Del evento&amp;nbsp;Saturday 124&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204665" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/04/25/pdf-presentaci-243-n-novedades-sqlserver-2012-bi.aspx</link>
      <pubDate>Wed, 25 Apr 2012 20:21:00 GMT</pubDate>
    </item>
    <item>
      <title>Google mueve ficha. Posiciona tus datos en la nube con Google Drive</title>
      <description>&lt;p&gt;&lt;img src="http://www.redusers.com/noticias/wp-content/uploads/2012/04/Google_Drive_Logo_lrg-540x429-515x333.jpg" width="163" height="110" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Si hace unas horas conocíamos que &lt;a href="http://geeks.ms/blogs/jorge/archive/2012/04/24/skydrive-est-225-de-cambio-demos-la-bienvenida-al-nuevo-skydrive.aspx"&gt;SkyDrive se renovaba&lt;/a&gt; y permitía usar entre 7 Gb y 25 Gb de datos en la nube sincronizándolos con nuestro PC, hoy conocemos que Google ha sacado a la luz su sistema de datos en la nube, Google Drive.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿En qué consiste Google Drive?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Al igual que en el caso de Microsoft SkyDrive, Google ha decidido crear diferentes planes de almacenamiento en la nube con sincronización en Google Docs.&lt;/p&gt;  &lt;p&gt;Por defecto, un usuario con cuenta GMail tendrá 5 Gb de almacenamiento gratuito.&lt;/p&gt;  &lt;p&gt;Adicionalmente, Google indica que la cuenta de GMail ha pasado de 7 Gb a 10 Gb, y el de Picasa posee un tamaño de 1 Gb (al menos en mi caso).&lt;/p&gt;  &lt;p&gt;10 Gb de GMail.   &lt;br /&gt;5 Gb de Drive (almacenamiento en la nube).    &lt;br /&gt;1 Gb de Picasa.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Actualizaciones&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pasar a tener 25 Gb Drive y Picasa viene a costar unos 2.49$ al mes. Como bonificación, la cuenta de correo GMail pasará a tener 25 Gb de espacio.&lt;/p&gt;  &lt;p&gt;Si lo que queremos es tener 100 Gb Drive y Picasa, entonces deberemos pagar 4.99 $ al mes, pasando nuestra cuenta de GMail a 25 Gb.&lt;/p&gt;  &lt;p&gt;Y así van subiendo las cuotas.&lt;/p&gt;  &lt;p&gt;Aquí os dejo una tabla resumen de estos baremos extraídos de la Web de Google.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1paBRMRerj0RAUmHdwDQYkthuGEQAASEbc3W5f53dZQOumt1iUpoiF3YCeaTAKwZDu9-5dpnpnnW6TTa5YGeRsmQ/20120425_01.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Suponiendo que los datos de la tabla anterior sean correctos, vemos alguna diferencia con respecto a otros servicios como Dropbox, Microsoft SkyDrive o iCloud de Apple.&lt;/p&gt;  &lt;p&gt;Nota: comento lo de que los datos de la tabla sean correctos ya que en la Web de &lt;a href="http://support.google.com/drive/bin/answer.py?hl=es&amp;amp;answer=2375124&amp;amp;p=storage_overview"&gt;explicación de los servicios&lt;/a&gt;, Google no deja claro del todo si GMail posee 10 Gb ó 7 Gb, ya que comenta las dos cosas al hablar de lo mismo. Quiero pensar que es una errata y pasa de 7 Gb a 10 Gb.&lt;/p&gt;  &lt;p&gt;Lo que está claro es que la guerra de servicios de almacenamiento en la nube está siendo bastante frenética, lo que posibilita que se ofrezcan mejores servicios y precios a los usuarios que somos al fin y al cabo los que saldremos beneficiados de esta situación.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Cómo trabajar con Google Drive&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lo primero de todo es poner en funcionamiento Google Drive.&lt;/p&gt;  &lt;p&gt;Para ello, bastará con pulsar el botón de activación en Google Drive.&lt;/p&gt;  &lt;p&gt;No obstante, a la hora de escribir esta entrada, el servicio ha dejado de funcionar tal y como era de esperar. Según se indica en algunos sitios en Internet, los fallos de activación de las cuentas y la demanda de activaciones ha hecho que Google active las cuentas progresivamente.&lt;/p&gt;  &lt;p&gt;Es por eso, que tendremos que fijarnos en el botón que aparece en la parte superior de nuestra página Web. Este botón puede indicar &amp;quot;Empieza con 5 GB gratis&amp;quot; o bien, &amp;quot;Notificarme&amp;quot;.&lt;/p&gt;  &lt;p&gt;Si aparece el segundo botón, deberemos pulsarlo para pasar a una lista de espera en la que Google nos avisará cuando el servicio esté preparado para ser activado. En caso contrario, estaremos de suerte.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sincronización&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Google Drive podrá sincronizar documentos y archivos desde Windows, Mac OS y Android, si bien, es posible que en breve se pueda sincronizar también para iOS, aunque de momento habrá que esperar, algo en lo que otras empresas como Microsoft sí le llevan a Google la delantera.&lt;/p&gt;  &lt;p&gt;En Android, podemos localizar la aplicación Google Drive.&lt;/p&gt;  &lt;p&gt;Para Windows no he podido localizar aún esta aplicación. Quiero pensar que cuando active el almacenamiento en la nube tendré posibilidad de instalar la aplicación que me permitirá sincronizar los datos en la nube.   &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Para acceder a Google Drive, deberemos hacer clic en el &lt;a href="https://drive.google.com/"&gt;siguiente enlace&lt;/a&gt; (recuerda tener una cuenta de GMail).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204649" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/25/google-mueve-ficha-posiciona-tus-datos-en-la-nube-con-google-drive.aspx</link>
      <pubDate>Wed, 25 Apr 2012 07:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Reiniciar un Windows Phone 7 con Nokia Lumia 800 sin Hard Reset</title>
      <description>&lt;p&gt;&lt;strong&gt;&lt;img src="http://i.nokia.com/image/view/-/232114/medRes/2/-/Searay-Black-00043-png.png?v=6" width="245" height="245" alt="" /&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Quizás no os pase nunca, pero a mí me ha ocurrido y por si os pasa lo mismo y os entra el momento histeria... que quede por aquí escrito por si le sirve a alguien.&lt;/p&gt;  &lt;p&gt;Escuchando música MP3 en mi Nokia Lumia 800 mientras trabajaba, de repente el terminal se ha quedado congelado. La pantalla bloqueada con la fecha en la que se quedó frito y sin responder a ninguna de las teclas.&lt;/p&gt;  &lt;p&gt;Momento histeria On. ¿Qué hacer?.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Haciendo un Hard Reset (no recomendado inicialmente)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lo primero en lo que he pensado es en que a lo mejor no quedaba otra que hacer un Hard Reset de mi terminal.&lt;/p&gt;  &lt;p&gt;Siempre que he hecho un Hard Reset lo he hecho desde el menú del terminal, pero nunca a través de las teclas.&lt;/p&gt;  &lt;p&gt;En teoría existe un método para hacer el Hard Reset a través de una combinación de teclas, pero eso borraría toda la configuración, datos, etc., del terminal, así que si puedo evitarlo mejor.&lt;/p&gt;  &lt;p&gt;No obstante y si por necesitas hacer un Hard Reset, lo que debes hacer es lo siguiente (no probado, y si lo pruebas, que sepas que te deja el terminal con los datos de fábrica perdiendo todos los datos guardados en el terminal):&lt;/p&gt;  &lt;p&gt;- Presionamos al mismo tiempo el botón de reducir volumen de audio, el botón de la cámara y el botón de encendido/apagado.   &lt;br /&gt;- Esperamos a que vibre el terminal, y en ese momento quitamos el dedo del botón de encendido/apagado dejando el resto de dedos pulsados durante unos 10 segundos y finalmente los quitamos.    &lt;br /&gt;- El terminal se deberá reiniciar solo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Reiniciando sin Hard Reset&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ahora bien, hacer el Hard Reset hace que el terminal aparezca vacío, con todos los datos, imágenes, música, configuraciones, etc borrados.&lt;/p&gt;  &lt;p&gt;Si no queremos que esto ocurra pero queremos únicamente reiniciar el terminal, bastará con dejar el dedo pulsado en el botón de encendido/apagado durante unos 10 segundos.&lt;/p&gt;  &lt;p&gt;El terminal vibrará y se reiniciará sin que perdamos nada.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Si os pasa algo parecido, ya sabéis como actuar.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204621" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/25/reiniciar-un-windows-phone-7-con-nokia-lumia-800-sin-hard-reset.aspx</link>
      <pubDate>Wed, 25 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>[VS 2010]– Webcasts de Abril y Mayo</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Estimados, en el presente post pongo a su disposici&amp;oacute;n la lista de Webcast de ALM para este mes y Mayo. Para registrarse hagan clic sobre la fecha del webcast y les redireccionar&amp;aacute; a la p&amp;aacute;gina de registro. Que lo disfruten!!&lt;/p&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;&lt;b&gt;Tema&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="121"&gt;
&lt;p&gt;&lt;b&gt;Fechas&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="138" valign="top"&gt;
&lt;p&gt;&lt;b&gt;Speaker&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Herramientas de Arquitectura&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511742&amp;amp;Culture=es-MX"&gt;23-abr&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Javier Arguello&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio 2010 de VSS a TFS, Empezando con Team Foundation Server&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511743&amp;amp;Culture=es-MX"&gt;24-abr&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Francisco Fagas&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Manejando requerimientos con Team Foundation Server 2010&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511869&amp;amp;Culture=es-MX"&gt;26-abr&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Diego Vazquez Arce&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Desarrollo Paralelo con Control de c&amp;oacute;digo fuente TFS&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511870&amp;amp;Culture=es-MX"&gt;30-abr&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Diego Vazquez Arce&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Utilizando Visual Studio 2010 Load Testing Agents para mejorar la calidad de las aplicaciones&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511871&amp;amp;Culture=es-MX"&gt;03-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Miguel Mendoza&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Project Server 2010: Gobernabilidad y Desarrollo&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511872&amp;amp;Culture=es-MX"&gt;7-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Francisco Fagas&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio 2010 &amp;amp; Silverlight&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511886&amp;amp;Culture=es-MX"&gt;8-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Rodolfo Finochietti&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio Testing&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511887&amp;amp;Culture=es-MX"&gt;9-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Miguel Mendoza&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio Testing&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511889&amp;amp;Culture=es-MX"&gt;14-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Miguel Mendoza&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio 2010 de VSS a TFS, Empezando con Team Foundation Server&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511890&amp;amp;Culture=es-MX"&gt;15-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Francisco Fagas&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Manejando requerimientos con Team Foundation Server 2010&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511891&amp;amp;Culture=es-MX"&gt;17-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Diego Vazquez Arce&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Visual Studio 2010 &amp;amp; Silverlight&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511892&amp;amp;Culture=es-MX"&gt;21-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Rodolfo Finochietti&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Desarrollo Paralelo con Control de c&amp;oacute;digo fuente TFS&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511893&amp;amp;Culture=es-MX"&gt;22-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Diego Vazquez Arce&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Utilizando Visual Studio 2010 Load Testing Agents para mejorar la calidad de las aplicaciones&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511894&amp;amp;Culture=es-MX"&gt;24-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Miguel Mendoza&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Herramientas de Arquitectura&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511912&amp;amp;Culture=es-MX"&gt;28-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139"&gt;
&lt;p&gt;Javier Arguello&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Construyendo aplicaciones Metro en Windows 8 con Visual Studio 11&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511913&amp;amp;Culture=es-MX"&gt;29-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139" valign="bottom"&gt;
&lt;p&gt;Rodrigo D&amp;iacute;az Concha&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="396"&gt;
&lt;p&gt;Project Server 2010: Gobernabilidad y Desarrollo&lt;/p&gt;
&lt;/td&gt;
&lt;td width="120"&gt;
&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032511914&amp;amp;Culture=es-MX"&gt;31-may&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="139" valign="bottom"&gt;
&lt;p&gt;Francisco Fagas&lt;/p&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=204638" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/04/24/vs-2010-webcasts-de-abril-y-mayo.aspx</link>
      <pubDate>Tue, 24 Apr 2012 16:56:00 GMT</pubDate>
    </item>
    <item>
      <title>Skydrive está de cambio Demos la bienvenida al nuevo SkyDrive</title>
      <description>&lt;p&gt;&lt;img src="https://secure.shared.live.com/~Live.SiteContent.Explore/~15.40.54/header/logo_sky.png" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Levantarse por la ma&amp;ntilde;ana y saber que tu cuenta de SkyDrive ha pasado de 25 Gb a 7 Gb no es del gusto de nadie.&lt;/p&gt;
&lt;p&gt;Sin embargo, saber que Microsoft ha establecido cambios para que una cuenta que antes ten&amp;iacute;a 25 Gb y que ahora pasar&amp;aacute; a 7 Gb no pierda esos 18 Gb de m&amp;aacute;s permiti&amp;eacute;ndonos recuperarlos, es un alivio.&lt;/p&gt;
&lt;p&gt;Tampoco es menos el comprobar que una cuenta que tiene 7 Gb, puede pasar a 25 Gb sin que perdamos dinero... dicho de otro modo, un usuario nuevo que se cree una cuenta s&amp;oacute;lo podr&amp;aacute; tener 7 Gb, y si quiere m&amp;aacute;s, tendr&amp;aacute; que pagar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Actualizando nuestra cuenta de SkyDrive para usar 25 Gb&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Siempre y cuando la cuenta de passport con uso de SkyDrive ya estuviera activa con anterioridad, la actualizaci&amp;oacute;n para usar los 25 Gb que inicialmente ten&amp;iacute;amos es gratuita y siempre y cuando no se nos pase el tiempo de actualizaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Bastar&amp;aacute; con acceder a &lt;a href="https://skydrive.live.com/"&gt;https://skydrive.live.com/&lt;/a&gt; y a trav&amp;eacute;s de esta direcci&amp;oacute;n, acceder con nuestra cuenta passport.&lt;/p&gt;
&lt;p&gt;Una vez dentro, en la parte superior deber&amp;iacute;a aparecer un hiperv&amp;iacute;nculo que nos invita a hacer clic en &amp;eacute;l para actualizar nuestra cuenta que ahora tiene 7 Gb, a 25 Gb de forma grauita.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Los nuevos costes de SkyDrive&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A modo resumen, los nuevos costes de SkyDrive para Europa son los siguientes:&lt;/p&gt;
&lt;p&gt;Para una cuenta creada nueva:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SkyDrive gratuito hasta 7 Gb de almacenamiento.&lt;/li&gt;
&lt;li&gt;SkyDrive + 20 hasta 27 Gb de almacenamiento a 8 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;li&gt;SkyDrive + 50 hasta 57 Gb de almacenamiento a 19 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;li&gt;SkyDrive + 100 hasta 107 Gb de almacenamiento a 37 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para una cuenta creada anteriormente y actualizada a 25 Gb:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SkyDrive gratuito hasta 25 Gb de almacenamiento.&lt;/li&gt;
&lt;li&gt;SkyDrive + 20 hasta 45 Gb de almacenamiento a 8 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;li&gt;SkyDrive + 50 hasta 75 Gb de almacenamiento a 19 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;li&gt;SkyDrive + 100 hasta 125 Gb de almacenamiento a 37 &amp;euro;/a&amp;ntilde;o.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;C&amp;oacute;mo sincronizar datos entre nuestro PC y SkyDrive?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Microsoft ha hecho p&amp;uacute;blica una herramienta que nos permitir&amp;aacute; sincronizar los datos de nuestro ordenador con la nube (SkyDrive).&lt;/p&gt;
&lt;p&gt;Esta herramienta podr&amp;aacute; ser descargada e instalada &lt;a href="https://apps.live.com/skydrive/app/9a65e47d-606a-4816-a246-90f54bf7a3ea"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si has trabajado por ejemplo con Dropbox, te resultar&amp;aacute; especialmente familiar la nueva forma de trabajar con SkyDrive. De hecho, es la forma normal y natural de trabajo con el escritorio de trabajo, arrastrando y soltando archivos, creando carpetas, etc, con la productividad de un PC.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-width:550px;" border="0" src="https://public.blu.livefilestore.com/y1pGUAG0kEcmQ6qskNHKCX0q9UOIS7PL6bHDIDSaOxNW8fjUOcfoPuwSRrG9lTwhyOB0XGYrJkL8n1dm4Y68k90zQ/20120424_01.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;El &amp;uacute;nico &amp;ldquo;pero&amp;rdquo; que algunos ya han comentado en las redes sociales es el hecho de que no podemos hacer clic con el bot&amp;oacute;n derecho del rat&amp;oacute;n sobre un archivo y obtener la ruta de acceso tal y como ocurre con Dropbox por ejemplo. Es decir, a SkyDrive a&amp;uacute;n le faltan algunos detalles pero es desde luego un gran paso compar&amp;aacute;ndolo con como deb&amp;iacute;amos trabajar con SkyDrive antes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;Google?, &amp;iquest;Dropbox?, &amp;iquest;iCloud?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Microsoft ha dado un importante paso hacia adelante, no s&amp;oacute;lo igualando las prestaciones de sus competidores, sino incluso mejorando estas.&lt;/p&gt;
&lt;p&gt;Si eres de los que les gusta comparar un producto con otro, te invito a visitar el siguiente enlace con la informaci&amp;oacute;n comparativa entre estos cuatro productos. Podr&amp;aacute;s acceder a esta informaci&amp;oacute;n &lt;a href="http://windows.microsoft.com/en-US/skydrive/compare"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;En resumen, los nuevos cambios de SkyDrive son cambios muy notables que beneficiar&amp;aacute;n a los usuarios. En mi caso he sincronizado a modo de prueba unos 5 Gb de informaci&amp;oacute;n y no he tenido ning&amp;uacute;n problema. Te invito y recomiendo a que lo uses.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://windows.microsoft.com/en-US/skydrive/home/"&gt;P&amp;aacute;gina Web oficial de SkyDrive&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204624" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/24/skydrive-est-225-de-cambio-demos-la-bienvenida-al-nuevo-skydrive.aspx</link>
      <pubDate>Tue, 24 Apr 2012 13:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Patrón Interfaz Marcadora (II)</title>
      <description>&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En la &lt;a href="http://geeks.ms/blogs/jorge/archive/2012/04/23/patr-243-n-interfaz-marcadora-i.aspx"&gt;entrada anterior&lt;/a&gt;, vimos en qu&amp;eacute; consist&amp;iacute;a el Patr&amp;oacute;n Interfaz Marcadora y c&amp;oacute;mo usarlo a trav&amp;eacute;s de interfaces.&lt;/p&gt;
&lt;p&gt;En esta entrada vamos a ver c&amp;oacute;mo implementar el Patr&amp;oacute;n Interfaz Marcadora a trav&amp;eacute;s de atributos.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implementaci&amp;oacute;n del Patr&amp;oacute;n Interfaz Marcadora con atributos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lo primero que debemos hacer es crear una clase que act&amp;uacute;e como atributo con el cu&amp;aacute;l decorar una clase con el fin de hacerla del tipo que deseemos.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MarcadoraAttribute : System.Attribute&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; } // MarcadoraAttribute&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Una vez creado este atributo, crearemos la clase que decoraremos con el atributo que hemos creado para hacerla del tipo que queremos.&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; [Marcadora]&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Foo&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt; } // Foo&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Finalmente tendremos la posibilidad de verificar que una determinada clase, est&amp;aacute; marcada con el atributo que indica que es de un tipo concreto.&lt;/p&gt;
&lt;p&gt;En nuestro caso y para el ejemplo que hemos preparado, quedar&amp;aacute; de la siguiente manera:&lt;/p&gt;
&lt;div id="codeSnippetWrapper" style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;"&gt;
&lt;div id="codeSnippet" style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; Foo foo = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Foo();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (foo.GetType().IsDefined(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(MarcadoraAttribute), &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;))&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;     MessageBox.Show(&lt;span style="color:#006080;"&gt;&amp;quot;Es marcadora&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;     MessageBox.Show(&lt;span style="color:#006080;"&gt;&amp;quot;No es marcadora&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Espero que esto le sirva a m&amp;aacute;s de uno para conocer c&amp;oacute;mo funciona y como utilizar este patr&amp;oacute;n.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204588" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/24/patr-243-n-interfaz-marcadora-ii.aspx</link>
      <pubDate>Tue, 24 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>FTP en Azure?</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/04/23/ftp-en-azure.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Este post surge como respuesta a una pregunta que recibí recientemente. Puedo tener un FTP en Windows Azure?&lt;/p&gt;      &lt;p&gt;Sí es posible, pero hay que tener en cuenta las implicaciones:        &lt;br /&gt;        &lt;br /&gt;1. Para lograrlo, es necesario establecer ciertas configuraciones especiales que por defecto no vienen establecidas en los Roles de Windows Azure. Así que tendrías que por ejemplo entrar por RDP a hacer cosas como configurar el Role de FTP en el servidor virtual, configurar puertos, etc. etc.&lt;/p&gt;      &lt;p&gt;       &lt;br /&gt;2. Sucede que los servidores de Azure cuando se reinician (por fallas, actualizaciones, etc) pierden todos los cambios que tuvieron en su ultima operación y vuelven a su estado original, así que todas esas tareas administrativas para configurar el FTP, deberían mejor ser ejecutadas a través de un script que se ejecute como un startup task, de manera que siempre que se inicie un Role, se autoconfigure para funcionar con FTP.&lt;/p&gt;      &lt;p&gt;       &lt;br /&gt;3. Quizá el problema más grave, es que los archivos que se hayan subido y/o actualizado, también se perderían cada vez que se reinicie el servidor virtual. En este caso, habría que hacer un respaldo de los archivos por ejemplo en el blob storage. Cosa que complicaría mucho la situación.&lt;/p&gt;      &lt;p&gt;       &lt;br /&gt;4. Afortunadamente, en poco tiempo estaremos liberando el CTP del Persistent VM Role. Un nuevo tipo de Role para Windows Azure que prepararemos offline en un vhd (aquí haríamos todas las configuraciones de FTP) y luego subimos a la nube para que trabaje como queramos. Afortunadamente, al ser persistente, mantendrá todos los archivos nuevos aún después de operaciones de reinicio. Se espera para mitad de año, aunque no es oficial aún.&lt;/p&gt;      &lt;p&gt;       &lt;br /&gt;Si quisieras experimentar un poco, te recomiendo este post donde dan un paso a paso de como convertir un role actual a FTP:         &lt;br /&gt;&lt;a href="http://mayur.gondaliya.com/microsoft/creating-ftp-server-on-windows-azure-493.html"&gt;http://mayur.gondaliya.com/microsoft/creating-ftp-server-on-windows-azure-493.html&lt;/a&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt; &lt;iframe style="border: currentcolor; width: 450px; height: 80px; overflow: hidden;" src="http://www.facebook.com/plugins/like.php?href=URLHERE&amp;amp;layout=standard&amp;amp;show_faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;font&amp;amp;colorscheme=light&amp;amp;height=80" frameborder="0" allowtransparency="true" scrolling="no"&gt;&lt;/iframe&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10296710" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/04/23/ftp-en-azure.aspx</link>
      <pubDate>Mon, 23 Apr 2012 17:57:15 GMT</pubDate>
    </item>
    <item>
      <title>Patrón Interfaz Marcadora (I)</title>
      <description>&lt;p&gt;&lt;i&gt;Segunda parte de esta entrada:&amp;nbsp;&lt;a href="http://geeks.ms/blogs/jorge/archive/2012/04/24/patr-243-n-interfaz-marcadora-ii.aspx"&gt;Patr&amp;oacute;n Interfaz Marcadora (II)&lt;/a&gt;&lt;/i&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Uno de los patrones m&amp;aacute;s desconocidos en general y no por ello infrautilizado, es el Patr&amp;oacute;n de Interfaz Marcadora o &lt;i&gt;Marker Interface Pattern&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;En .NET tenemos dos formas de implementar este patr&amp;oacute;n. En esta primera entrada sobre este patr&amp;oacute;n veremos una de estas formas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; es el Patr&amp;oacute;n Interfaz Marcadora?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lo primero de todo es entender bien qu&amp;eacute; es o en qu&amp;eacute; consiste el Patr&amp;oacute;n Interfaz Marcadora.&lt;/p&gt;
&lt;p&gt;Se trata de un patr&amp;oacute;n de dise&amp;ntilde;o que puede ser utilizado para proporcionar informaci&amp;oacute;n marcadora sobre un objeto concreto.&lt;/p&gt;
&lt;p&gt;El objetivo de este patr&amp;oacute;n es el de &lt;i&gt;&lt;span style="text-decoration:underline;"&gt;indicar el comportamiento&lt;/span&gt;&lt;/i&gt; de la clase que la implementa.&lt;/p&gt;
&lt;p&gt;Sin embargo, debe quedar claro para evitar dudas, que una interfaz marcadora es aquella que carece de miembros, es decir, que sirve para &lt;i&gt;&lt;span style="text-decoration:underline;"&gt;marcar&lt;/span&gt;&lt;/i&gt;. Adem&amp;aacute;s de esto, al carecer de miembros, no define ning&amp;uacute;n contrato que pueda ser implementado.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clases y subclases&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hablando de herencia, debemos tener claro un aspecto que seguramente dominaremos todos a estas alturas. Si tenemos una clase que implementa una interfaz marcadora y una subclase que hereda de esa clase, &amp;eacute;sta tambi&amp;eacute;n arrastrar&amp;aacute; consigo esa interfaz marcadora. Es algo obvio, pero debemos tenerlo en cuenta.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;C&amp;oacute;mo funciona?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Comprenderemos mejor el funcionamiento de este patr&amp;oacute;n con un ejemplo en c&amp;oacute;digo C#.&lt;/p&gt;
&lt;p&gt;Para ello, crearemos inicialmente una interfaz &lt;i&gt;vac&amp;iacute;a&lt;/i&gt; como por ejemplo:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; IMarcadoraFoo&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; } // IMarcadoraFoo&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Luego, tendremos una clase que implementar&amp;aacute; esta interfaz marcadora, como por ejemplo la clase Foo:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Foo : IMarcadoraFoo&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; } // Foo&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Si dispongo de un m&amp;eacute;todo o funci&amp;oacute;n que interact&amp;uacute;e de alguna manera con una clase &lt;em&gt;Foo&lt;/em&gt;, podr&amp;eacute; preguntarle si implementa esta interfaz marcadora.&lt;/p&gt;
&lt;p&gt;Un ejemplo sencillo de como preguntar si una clase implementa la interfaz marcadora es hacerlo de la siguiente manera:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; Foo foo = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Foo();&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (foo &lt;span style="color:#0000ff;"&gt;is&lt;/span&gt; IMarcadoraFoo)&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     MessageBox.Show(&lt;span style="color:#006080;"&gt;&amp;quot;Es marcadora&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; }&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; {&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;     MessageBox.Show(&lt;span style="color:#006080;"&gt;&amp;quot;No es marcadora&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Como podemos apreciar en el c&amp;oacute;digo anterior, hemos verificado que la clase &lt;em&gt;Foo&lt;/em&gt; con la que queremos trabajar es una clase que implementa la interfaz marcadora &lt;em&gt;IMarcadoraFoo&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;No obstante, existe otra forma m&amp;aacute;s recomendable en .NET de implementar al Patr&amp;oacute;n Interfaz Marcadora, y es hacerlo con atributos. Esto lo veremos en la pr&amp;oacute;xima entrega.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Marker_interface_pattern"&gt;Marker Interface Pattern (Wikipedia)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Segunda parte de esta entrada:&amp;nbsp;&lt;a href="http://geeks.ms/blogs/jorge/archive/2012/04/24/patr-243-n-interfaz-marcadora-ii.aspx"&gt;Patr&amp;oacute;n Interfaz Marcadora (II)&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204586" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/23/patr-243-n-interfaz-marcadora-i.aspx</link>
      <pubDate>Mon, 23 Apr 2012 06:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Lock Screen personalizada para Windows Phone 7</title>
      <description>&lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Cuando adquirí mi Windows Phone, una de las primeras cosas que hice fue bloquear la pantalla de inicio con contraseña. Una manía que he adquirido con el paso de los años y que he seguido haciendo con todos los terminales móviles que he tenido.&lt;/p&gt;  &lt;p&gt;No obstante, un día me pregunté qué pasaría si teniendo la pantalla de inicio bloqueada, me dejara el móvil o si tuviera un accidente o percance.&lt;/p&gt;  &lt;p&gt;Con esa idea desarrollé una aplicación que denominé AA (Avisa A), pero el inconveniente de esta aplicación es que me impide poner los datos principales de contacto, personales o que yo desee en la pantalla de inicio.&lt;/p&gt;  &lt;p&gt;En la Web de peticiones para Windows Phone 7 encontré posteriormente una iniciativa que solicitaba a Microsoft que agregaran la posibilidad de agregar en la pantalla de inicio aquellos datos que consideramos de relevancia o importancia cuando bloqueamos la pantalla de inicio de nuestros Windows Phone. Lógicamente y siendo coherente con lo que pensaba apoyé la idea.&lt;/p&gt;  &lt;p&gt;Más adelante sin embargo, me encontré con una Web en la que AJ Troxell mostraba una pantalla de inicio personalizada para Windows Phone en el caso de que bloqueáramos la pantalla. ¡Genial!... fácil y sencillo sino hay otra opción de momento.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lock Screen de AJ Troxell&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;AJ Troxell explica más o menos como ha hecho esta pantalla y ha agregado incluso algunas plantillas al respecto. Podéis encontrar esta información &lt;a href="http://ajtroxell.com/2011/12/wp7-lock-screen/#.T4kuF6t1Cnk"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;La idea está resumida en esta captura de pantalla:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://ajtroxell.com/wp-content/uploads/2011/12/lock_screen_preview-564x805.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lock Screen de Jorge Serrano&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Y con esta misma idea, me creé una pantalla de bloqueo para mi Windows Phone, similar a la idea inicial de AJ Troxell pero con particularidades que considero de importancia y que en la plantilla de AJ Troxell no se incluían.&lt;/p&gt;  &lt;p&gt;Algunos MVPs y otras personas han visto ya esta pantalla y además de que “&lt;em&gt;lógicamente&lt;/em&gt;” les recuerde a la plantilla de AJ Troxell, me han preguntado si iba a publicar las plantillas que he utilizado, y aunque en un principio no lo pensaba hacer por la similitud de la idea de AJ Troxell, he creído oportuno hacerlo, y como lo prometido es deuda, aquí van a ir.&lt;/p&gt;  &lt;p&gt;Lo primero de todo y antes de nada, explicar porqué he creado mis plantillas.&lt;/p&gt;  &lt;p&gt;En la pantalla de bloqueo de AJ Troxell, éste ha agregado su nombre en grande, su foto, su correo electrónico, su Web, su cuenta de facebook, de Twitter y su teléfono.&lt;/p&gt;  &lt;p&gt;Mi idea es similar pero dándole una vuelta a esto. Mi nombre me gusta que aparezca pero no destacado, la importancia que busco si alguien encuentra mi móvil es la de facilitarle la vida localizando a su propietario y en en caso de emergencia, los datos más relevantes, así que el nombre es importante pero más aún otra información. &lt;/p&gt;  &lt;p&gt;En mi caso por lo tanto, esta pantalla de bloqueo debe tener para mí datos que considero importantes por si tuviera algún problema, ya sea porque he perdido mi teléfono o porque he tenido un percance. Con esta filosofía, yo he querido hacer esta pantalla algo más simple y limpia y he querido poner mi nombre, mi correo electrónico, mi cuenta de Twitter, mi teléfono, mi grupo sanguíneo, mis posibles alergias y a quien avisar en caso de emergencia.&lt;/p&gt;  &lt;p&gt;Hay que tener en cuenta, que si pierdo mi teléfono y está bloqueado, la mejor manera de permitir que alguien me lo devuelva es o bien llamar a mi número de teléfono desde otro teléfono y tener la suerte de que alguien coja la llamada, o bien indicar un teléfono de contacto para que llamen a ese número. Y lo mismo ocurre si tengo un percance.&lt;/p&gt;  &lt;p&gt;Las plantillas que he preparado para este propósito son las siguientes:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pTBLeWsDqB4Ez5RbHHYRYuIV26DHJ5yyO-9xmlA3gYyVn9n0IjsaNsj1K6w4SQWMd2l5vJuwsYNikvUkCunHmuQ/20120422_01.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Las plantillas&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Obviamente, muchos de los datos utilizados en la imagen anterior son falsos.&lt;/p&gt;  &lt;p&gt;Que cada uno se decargue la plantilla y la modifique como considere oportuno.&lt;/p&gt;  &lt;p&gt;La plantilla que pongo a vuestro alcance tiene 12 aspectos diferentes.&lt;/p&gt;  &lt;p&gt;Crear el vuestro propio no es tampoco costoso, así como un fondo tipo paisaje o lo que consideréis oportuno.&lt;/p&gt;  &lt;p&gt;El fichero de descarga tiene un tamaño de 2.4 Mb y dentro de él, encontraréis la plantilla en formato psd (Adobe Photoshop) y con un tamaño de casi 8.5 Mb.&lt;/p&gt;  &lt;p&gt;Podréis acceder a la plantilla &lt;a href="https://skydrive.live.com/redir.aspx?cid=ed7dad70423e8ce4&amp;amp;resid=ED7DAD70423E8CE4!560&amp;amp;parid=ED7DAD70423E8CE4!557"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Ahora bien, sino tenéis Adobe Photoshop, podréis utilizar un plugin para Paint .NET que permite abrir ficheros en formato psd.&lt;/p&gt;  &lt;p&gt;Paint .NET es gratuito como sabréis todos y podréis acceder a él &lt;a href="http://www.getpaint.net/"&gt;en este enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;El plugin para abrir ficheros psd con Paint .NET lo podréis encontrar &lt;a href="http://psdplugin.codeplex.com/"&gt;en este otro enlace&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;¡Que lo disfrutéis!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204577" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/22/lock-screen-personalizada-para-windows-phone-7.aspx</link>
      <pubDate>Sun, 22 Apr 2012 07:30:00 GMT</pubDate>
    </item>
    <item>
      <title>Windows 8 en las ediciones que deberían ser</title>
      <description>&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p align="justify"&gt;Ya en este punto sabemos mucho del mundo de nuevas cosas que se vienen con Windows 8. &lt;/p&gt;      &lt;p align="justify"&gt;Comencemos citando entonces que tendremos dos grandes divisiones en las que tendremos Windows 8. La &lt;b&gt;x86/64&lt;/b&gt; y la &lt;b&gt;WOA&lt;/b&gt; (Windows on ARM –los procesadores de bajo consumo energético). En ambas se podrán usar touchscreens, así como mouse y teclado cuando se desee. &lt;/p&gt;      &lt;p align="justify"&gt;Así que para x86/64 el nombre del OS será Windows 8. Y para estos sistemas, tendremos sólo &lt;b&gt;2&lt;/b&gt; versiones: &lt;b&gt;&lt;i&gt;Windows 8&lt;/i&gt;&lt;/b&gt; y &lt;b&gt;&lt;i&gt;Windows 8 Pro&lt;/i&gt;&lt;/b&gt;&lt;i&gt;.&lt;/i&gt; La primera para uso de hogares y pequeñas empresas y la segunda para usos más profesionales con integración a dominios y demás (Ver al final la tabla de características)&lt;/p&gt;      &lt;p align="justify"&gt;Para el mundo de WOA llega &lt;b&gt;&lt;a href="http://blogs.msdn.com/b/warnov/archive/2012/02/08/windows-8-lo-que-deber-237-as-saber-y-nadie-te-ha-contado.aspx"&gt;Windows RT&lt;/a&gt; &lt;/b&gt;como el nuevo miembro de nuestra familia Windows. Y sólo estará disponible pre-instalada en PCs y tablets que tengan procesadores ARM. Vendrá con versiones optimizadas para touch de Microsoft Word, Excel, PowerPoint y OneNote.&lt;/p&gt;      &lt;p align="justify"&gt;Aquí les muestros las características especiales que podremos encontrar en cada edición.&lt;/p&gt;      &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td width="330"&gt;             &lt;p align="center"&gt;&lt;b&gt;Característica&lt;/b&gt;&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p&gt;&lt;b&gt;Windows 8&lt;/b&gt;&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p&gt;&lt;b&gt;Windows 8 Pro&lt;/b&gt;&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p&gt;&lt;b&gt;Windows RT&lt;/b&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="327"&gt;             &lt;p&gt;Upgrades from Windows 7 Starter, Home Basic, Home Premium&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="324"&gt;             &lt;p&gt;Upgrades from Windows 7 Professional, Ultimate&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;nbsp;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="322"&gt;             &lt;p&gt;Start screen, Semantic Zoom, Live Tiles&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="321"&gt;             &lt;p&gt;Windows Store&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="321"&gt;             &lt;p&gt;Apps (Mail, Calendar, People, Messaging, Photos, SkyDrive, Reader, Music, Video)&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="320"&gt;             &lt;p&gt;Microsoft Office (Word, Excel, PowerPoint, OneNote)&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Internet Explorer 10&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Device encryption&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Connected standby&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Microsoft account&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Desktop&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Installation of x86/64 and desktop software&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Updated Windows Explorer&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Windows Defender&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;SmartScreen&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Windows Update&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Enhanced Task Manager&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Switch languages on the fly (Language Packs)&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Better multiple monitor support&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Storage Spaces&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Windows Media Player&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Exchange ActiveSync&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;File history&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;ISO / VHD mount&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Mobile broadband features&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Picture password&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Play To&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Remote Desktop (client)&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Reset and refresh your PC&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Snap&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Touch and Thumb keyboard&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Trusted boot&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;VPN client&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;BitLocker and BitLocker To Go&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Boot from VHD&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Client Hyper-V&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Domain Join&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Encrypting File System&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Group Policy&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="319"&gt;             &lt;p&gt;Remote Desktop (host)&lt;/p&gt;           &lt;/td&gt;            &lt;td width="89"&gt;&amp;#160;&lt;/td&gt;            &lt;td width="111"&gt;             &lt;p align="center"&gt;x&lt;/p&gt;           &lt;/td&gt;            &lt;td width="90"&gt;&amp;#160;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;      &lt;p&gt;Si no lo has visto en acción, dascarga una version de prueba de &lt;a href="http://windowsteamblog.com/windows/b/windowsexperience/archive/2012/02/29/introducing-windows-8-consumer-preview.aspx"&gt;aquí&lt;/a&gt;!&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Para las empresas con SOftware Assurance,&amp;#160; como siempre tendremos la versión Windows 8 Enterprise, con aún más features para el manejo corporativo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10294577" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/04/17/windows-8-en-las-ediciones-que-deber-237-an-ser.aspx</link>
      <pubDate>Tue, 17 Apr 2012 17:22:02 GMT</pubDate>
    </item>
    <item>
      <title>Mis 6 aplicaciones de Windows Phone más descargadas</title>
      <description>&lt;p&gt;&lt;img height="148" width="148" src="http://www.puntogeek.com/wp-content/uploads/2011/06/logo-windows-phone.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Me gustar&amp;iacute;a aprovechar mi blog para &amp;quot;promocionar&amp;quot; algunas de las aplicaciones que para Windows Phone he publicado recientemente y que espero le sea de utilidad a alguien (con ese prop&amp;oacute;sito se hacen digo yo).&lt;/p&gt;
&lt;p&gt;El hecho de escribir esta entrada es principalmente para dar a conocer estas aplicaciones, sin embargo, en realidad me he animado a ello despu&amp;eacute;s de encontrarme con un comentario positivo acerca de una de mis aplicaciones de una persona que conozco, a la que despu&amp;eacute;s de enviarle un correo electr&amp;oacute;nico d&amp;aacute;ndole mis agradecimientos me ha indicado que no ten&amp;iacute;a ni idea que yo hab&amp;iacute;a sido el autor de esa aplicaci&amp;oacute;n... as&amp;iacute; que en ese momento es cuando me he puesto a pensar que seguramente lo que pase aqu&amp;iacute; es que no estoy promocionando adecuadamente mis aplicaciones (que por cierto, son gratuitas).&lt;/p&gt;
&lt;p&gt;De mis 20 aplicaciones para Windows Phone publicadas hasta la fecha en el Marketplace de Microsoft, me gustar&amp;iacute;a destacar 6 de ellas, no por ser o representar algo especial o ser extraordinarias en cuanto a su dise&amp;ntilde;o, funcionalidad, etc, sino por la cantidad de descargas que han tenido hasta la fecha (hay alguna aplicaci&amp;oacute;n m&amp;aacute;s sobre la que le he puesto una gran cari&amp;ntilde;o y trabajo y tienen unas cifras de descargas de reirse).&lt;/p&gt;
&lt;p&gt;Quiero pensar que esa cantidad de descargas debe deberse a algo positivo (espero). No obstante, siguen siendo muy pocas descargas comparado con otras aplicaciones del Marketplace, pero puesto que s&amp;oacute;lo dedico un peque&amp;ntilde;o espacio de tiempo libre a escribir estas aplicaciones, no considero esta modesta cantidad despreciable.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="text-decoration:underline;"&gt;Mi peque&amp;ntilde;o ranking de aplicaciones publicadas es el siguiente:&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/23d96852-57a7-4a4f-910e-9aa99ae66028/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;Pictionary Draw&lt;/strong&gt;, con 3566 descargas.     &lt;br /&gt;Lo utilizo &amp;uacute;nicamente para ahorrarme pintar en hojas de papel permitiendo ser un poco m&amp;aacute;s &amp;quot;verdes&amp;quot; y evitar que se talen tanto &amp;aacute;rboles.     &lt;br /&gt;Entre las cr&amp;iacute;ticas recibidas, se me pide hacer de &amp;eacute;l un aut&amp;eacute;ntico Pictionary.     &lt;br /&gt;Le estoy dando alguna vuelta al tema, pero creo que me pego de lleno con temas legales, aunque ya estoy analizando la posibilidad de evitar estos problemas.     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/5b3bb40a-a1dc-405e-9d58-5b8bef7442fc?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/820f7bad-520a-4c4e-8afb-9d17810876a1/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;Chiquitron Sound&lt;/strong&gt;, con 3099 descargas.     &lt;br /&gt;Se me ocurri&amp;oacute; hacer esta aplicaci&amp;oacute;n partiendo de la base de que all&amp;aacute; por el 2003 aproximadamente, me cre&amp;eacute; una aplicaci&amp;oacute;n en Visual Basic 6 que hac&amp;iacute;a pr&amp;aacute;cticamente esto mismo y que utilizaba en las reuniones de trabajo (siempre y cuando fuera adecuado).     &lt;br /&gt;Con el mismo prop&amp;oacute;sito, pens&amp;eacute; llevar esto en el bolsillo para echarse unas risas.     &lt;br /&gt;Pens&amp;eacute; que iba a ser la aplicaci&amp;oacute;n menos descargada y me equivoqu&amp;eacute;...     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/7eb1ab6e-9506-45d4-acb4-52a40be6e73e?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/f2e10f7c-195b-46e1-bb69-a1116c409bfd/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;Plano Metro Madrid&lt;/strong&gt;, con 1697 descargas.     &lt;br /&gt;Cuando adquir&amp;iacute; mi primer Windows Phone, una de las primeras aplicaciones que me descargu&amp;eacute; fue el Plano de Metro de Madrid que program&amp;oacute; Jos&amp;eacute; &amp;Aacute;ngel Fern&amp;aacute;ndez.     &lt;br /&gt;Cuando pasado el tiempo resete&amp;eacute; mi terminal, fu&amp;iacute; a por la misma aplicaci&amp;oacute;n pero ya no exist&amp;iacute;a.     &lt;br /&gt;Pas&amp;eacute; un tiempo sin ella pero la echaba en falta, as&amp;iacute; que me puse en contacto con Jos&amp;eacute; &amp;Aacute;ngel y me enter&amp;eacute; que decidi&amp;oacute; eliminarla del Marketplace, por lo que le ped&amp;iacute; que la publicara nuevamente, pero me indic&amp;oacute; que no encontraba el c&amp;oacute;digo de la misma, as&amp;iacute; que me puse a hacer mi versi&amp;oacute;n de lo que consideraba que deb&amp;iacute;a ser una aplicaci&amp;oacute;n de este tipo.     &lt;br /&gt;En breve preveo hacer lo propio con otras ciudades.     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/e4d1e8cd-84e8-4d72-80dd-7a85d9ae1a79?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/4395b919-9e56-4b6b-bb19-91c9fcd8bcba/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;Night Exposure&lt;/strong&gt;, con 1050 descargas.     &lt;br /&gt;Como amante y aficionado a la fotograf&amp;iacute;a, decid&amp;iacute; migrar esta aplicaci&amp;oacute;n que hice en su d&amp;iacute;a para Windows y Windows SmartPhone a Windows Phone.     &lt;br /&gt;Muchas veces, cuando queremos fotograf&amp;iacute;ar con bajas condiciones de luz o con filtros de densidad neutra, se echa en falta el tener alg&amp;uacute;n mecanismo de contabilizaci&amp;oacute;n que nos ayude a ajustar los par&amp;aacute;metros de nuestra c&amp;aacute;mara fotogr&amp;aacute;fica de manera r&amp;aacute;pida y exacta.     &lt;br /&gt;Esta herramienta permite facilitarnos esta tarea.     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/6ad7560e-dedd-42b3-b1c2-27e1e92c10a5?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/a5144ddc-8944-4ea3-a361-a740ee28468c/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;A cuanto toca&lt;/strong&gt;, con 560 descargas.     &lt;br /&gt;Peque&amp;ntilde;a utilidad para calcular el dinero (con o sin propina) que debemos pagar cuando salimos a tomar algo en grupo.     &lt;br /&gt;Existe por supuesto la calculadora de toda la vida, pero esta herramienta realiza los c&amp;aacute;lculos de forma mucho m&amp;aacute;s r&amp;aacute;pida y flexible.     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/4e8efc42-1188-4c61-99b4-29e50937d34a?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://catalog.zune.net/v3.2/es-ES/apps/a931aedc-2103-486c-b1df-351f1503f78e/primaryImage?width=95&amp;amp;height=95&amp;amp;resize=true" alt="" /&gt;     &lt;br /&gt;&lt;strong&gt;Dilbert Today!&lt;/strong&gt;, con 514 descargas.     &lt;br /&gt;Creo que el nombre lo dice todo.     &lt;br /&gt;Nos permite ver la vi&amp;ntilde;eta del d&amp;iacute;a de Dilbert e incluso guardarla en nuestra biblioteca de im&amp;aacute;genes de Windows Phone por si quisi&amp;eacute;ramos reenviarla, o lo que dese&amp;aacute;ramos hacer.     &lt;br /&gt;&lt;img height="498" width="280" src="http://catalog.zune.net/v3.2/es-ES/image/e4c65bec-e409-4f0c-88eb-791f352f6e1a?width=1280&amp;amp;height=720&amp;amp;resize=true" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero haber dado a conocer a alguien alguna de estas aplicaciones, y que ante todo le sea de utilidad a alguien.&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=204501" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/17/mis-6-aplicaciones-de-windows-phone-m-225-s-descargadas.aspx</link>
      <pubDate>Tue, 17 Apr 2012 13:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Utilizando fuentes personalizadas en nuestras aplicaciones de Windows Phone 7</title>
      <description>&lt;p&gt;&lt;strong&gt;Introducci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cuando desarrollamos una aplicaci&amp;oacute;n de Windows Phone 7 normalmente utilizaremos las fuentes de letra habituales instaladas en nuestro sistema y que ser&amp;aacute;n utilizadas por Windows Phone en tiempo de ejecuci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Si Windows Phone no tiene o no encuentra esa fuente de letra, utilizar&amp;aacute; la Segoe WP, pero imagin&amp;eacute;monos que queremos utilizar una fuente de letra personalizar en nuestra aplicaci&amp;oacute;n, &amp;iquest;c&amp;oacute;mo podemos hacerlo?.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Iniciando el proyecto&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lo primero de todo es contar con una fuente de letra.&lt;/p&gt;
&lt;p&gt;En mi caso he elegido una fuente de letra de nombre &amp;quot;SketchFlow Print&amp;quot; (modo demo).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pYDLciqVvmmVGU18wJQC4Wndwcl9iCpD0-mYz_uiS4lFhNt5Ye7BOqjrR27HALEkxUjj9C3ywDT8wpF5xWm3BTA/20120412_01.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Preparando el proyecto en Visual Studio 2010&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L&amp;oacute;gicamente, lo primero que tenemos que hacer una vez tengamos la fuente de letra que queremos utilizar, es crear nuestro proyecto en Visual Studio 2010.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pT28dwutOcvq31JUZwZ_JC4kdaS9qRVpal8DLJO227pzTMKjgUHJ8hVt3b_mFkih68diCF9xpGn1BpbJkfJ_W-w/20120412_02.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Una vez hecho esto y en mi caso, he cambiado el modo de depuraci&amp;oacute;n a Windows Phone Device.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1plstecCx6iN5BQTcGWJs_W-O6gyR3Sdkr6uMq3a7YausFQS1J9TvhomXQ-iJ18Ft6T-6MTtz4G7VSX4igaitGmA/20120412_03.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Al ejecutar nuestra aplicaci&amp;oacute;n, &amp;eacute;sta se mostrar&amp;aacute; por defecto de la siguiente manera en nuestro Windows Phone 7:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1p0aEwb3TycIKXLEaPzc-XH7D0G3YUqAJdybAmqy-UOhrfpfrt_LpLyGJCYi6F-yGhuQ7R2u0XRpMypER4lF37pg/20120412_04.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agregando una fuente de letra personalizada al proyecto&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como podemos ver en la imagen anterior, la fuente de letra es la que Windows Phone utiliza por defecto.&lt;/p&gt;
&lt;p&gt;Ahora bien, para agregar una fuente de letra personalizada, vamos a crear un directorio denominado &lt;em&gt;&lt;strong&gt;Fonts&lt;/strong&gt;&lt;/em&gt; y vamos a agregar dentro la fuente de letra (con extensi&amp;oacute;n ttf) en este directorio.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1plstecCx6iN6nqcT6j7N_bi6TA62dVrU2fwAVHFyCTlmwIwAIbSSmAafyUVrEX5TyDjJxNX-T1se_rDKMTcEh1w/20120412_05.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Una vez hecho esto, seleccionaremos la fuente de letra y modificaremos en la ventana de propiedades la propiedad &lt;strong&gt;&lt;em&gt;Acci&amp;oacute;n de compilaci&amp;oacute;n&lt;/em&gt;&lt;/strong&gt; para ponerla como &lt;em&gt;&lt;strong&gt;Contenido&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pT28dwutOcvo_uTNl_na-QoM1SYYxEiwxxpnsTSjQGFP-56L8QlLQSXZsbBl7Xt4SBIE-7ZfuJktdLKPziqs_tQ/20120412_06.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Lo &amp;uacute;ltimo que tenemos por delante es indicar al control de usuario que queramos la fuente de letra a utilizar.&lt;/p&gt;
&lt;p&gt;Por ejemplo, para el t&amp;iacute;tulo de la aplicaci&amp;oacute;n y en su control &lt;strong&gt;&lt;em&gt;TextBlock&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;TextBlock x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;PageTitle&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#006080;"&gt;&amp;quot;page name&amp;quot;&lt;/span&gt; Margin=&lt;span style="color:#006080;"&gt;&amp;quot;9,-7,0,0&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; FontFamily=&lt;span style="color:#006080;"&gt;&amp;quot;Fonts/SketchFlow Print.ttf#SketchFlow Print&amp;quot;&lt;/span&gt; FontSize=&lt;span style="color:#006080;"&gt;&amp;quot;60&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Aqu&amp;iacute; lo importante es observar la propiedad &lt;strong&gt;&lt;em&gt;FontFamily&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Aqu&amp;iacute; indico la ruta en la que se encuentra nuestra fuente personalizada (&lt;em&gt;Fonts&lt;/em&gt;), el fichero de nuestra fuente de letra (&lt;em&gt;SketchFlow Print.tff&lt;/em&gt;), y el nombre de la fuente de letra (&lt;em&gt;SketchFlow Print&lt;/em&gt;) y que podemos ver f&amp;aacute;cilmente en la primera captura de pantalla, que se consigue en Windows haciendo doble clic sobre la fuente de letra.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Probando el proyecto&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finalmente, nuestra aplicaci&amp;oacute;n tendr&amp;aacute; ahora un aspecto similar al siguiente:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pT28dwutOcvpPSnJGyHje-lOKSO0bTP464MWkCeN36w4TNwes-V79fP1Uz2l1rdBNNUsZZ9rx0X0j_cwereeNJA/20120412_07.png?psid=1" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Utilizando la fuente de letra en toda la aplicaci&amp;oacute;n&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ahora bien, este truco sirve para utilizar una fuente de letra personalizada con un control de usuario concreto, pero imaginemos que queremos utilizar la fuente de letra a lo largo de todo el proyecto o aplicaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&amp;iquest;C&amp;oacute;mo resolver esto de forma f&amp;aacute;cil para que no tengamos que indicar siempre el nombre de la fuente de letra y su nombre?.&lt;/p&gt;
&lt;p&gt;Imaginemos incluso los beneficios/perjuicios a la hora de mantener nuestra aplicaci&amp;oacute;n y la cantidad de modificaciones que tendr&amp;iacute;amos que hacer (aunque en este caso lo resolvamos f&amp;aacute;cilmente con un reemplazar).&lt;/p&gt;
&lt;p&gt;Para resolver este dilema, lo que podemos hacer es abrir el archivo &lt;strong&gt;&lt;em&gt;App.xaml&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Dentro de este archivo, nos situaremos en la secci&amp;oacute;n &lt;strong&gt;&lt;em&gt;Application.Resources&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Aqu&amp;iacute; indicaremos la fuente de letra a utilizar tal y como se indica a continuaci&amp;oacute;n:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;Application.Resources&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt;     &amp;lt;FontFamily x:Key=&lt;span style="color:#006080;"&gt;&amp;quot;SketchFlowPrintFont&amp;quot;&lt;/span&gt;&amp;gt;Fonts/SketchFlow Print.ttf#SketchFlow Print&amp;lt;/FontFamily&amp;gt;&lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &amp;lt;/Application.Resources&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A continuaci&amp;oacute;n, nos iremos al c&amp;oacute;digo de nuestra aplicaci&amp;oacute;n y modificaremos la propiedad &lt;strong&gt;&lt;em&gt;FontFamily&lt;/em&gt;&lt;/strong&gt; del control de usuario de esta forma:&lt;/p&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;width:97.5%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;cursor:text;border:silver 1px solid;padding:4px;" id="codeSnippetWrapper"&gt;
&lt;div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;" id="codeSnippet"&gt;
&lt;pre style="text-align:left;line-height:12pt;background-color:white;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;TextBlock x:Name=&lt;span style="color:#006080;"&gt;&amp;quot;PageTitle&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#006080;"&gt;&amp;quot;page name&amp;quot;&lt;/span&gt; Margin=&lt;span style="color:#006080;"&gt;&amp;quot;9,-7,0,0&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;margin:0em;width:100%;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; FontFamily=&lt;span style="color:#006080;"&gt;&amp;quot;{StaticResource SketchFlowPrintFont}&amp;quot;&lt;/span&gt; FontSize=&lt;span style="color:#006080;"&gt;&amp;quot;60&amp;quot;&lt;/span&gt; /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Como podemos apreciar, lo &amp;uacute;nico que hemos hecho aqu&amp;iacute; es simplificar el uso de la fuente de letra acudiendo a los recursos de la aplicaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero que te resulte &amp;uacute;til.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204406" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/12/utilizando-fuentes-personalizadas-en-nuestras-aplicaciones-de-windows-phone-7.aspx</link>
      <pubDate>Thu, 12 Apr 2012 07:45:00 GMT</pubDate>
    </item>
    <item>
      <title>[WebCast] Creación de un Modelo Semántico Tabular Sql Server 2012</title>
      <description>&lt;p&gt;En el video se observa paso a paso la creaci&amp;oacute;n&amp;nbsp;y exploraci&amp;oacute;n de un modelo sem&amp;aacute;ntico tabular en Sql Server 2012&lt;/p&gt;
&lt;p align="center"&gt;&lt;iframe width="400" frameborder="0" src="http://player.vimeo.com/video/40091958?title=0&amp;amp;byline=0&amp;amp;portrait=0" height="300"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204384" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/04/10/webcast-creaci-243-n-de-un-modelo-sem-225-ntico-tabular-sql-server-2012.aspx</link>
      <pubDate>Tue, 10 Apr 2012 16:32:00 GMT</pubDate>
    </item>
    <item>
      <title>Windows 8 Dev Machine</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/04/07/windows-8-dev-machine.aspx" scrolling="no" frameborder="0" style="border:none; width:130px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Hasta hace unos días, lo único que me impedía desarrollar completamente basado en Windows 8, era el tema de Windows Azure y sobretodo el de Windows Phone, dado que al usar emuladores, aún no estaban plenamente soportados.&lt;/p&gt;      &lt;p&gt;Afortunadamente, al interior de Microsoft estamos siendo muy veloces y a hoy, ya tenemos un gran conjunto de tools que nos permiten desarrollar para todas las tecnologías que teníamos disponibles en VS2010 sobre Windows 7 por ejemplo.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;Primero aclaremos algunos hechos básicos:&lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;1. Visual Studio 2010 (VS10) y Visual Studio 11 (VS11) coexisten sin problemas en el mismo sistema operativo ya sea Windows 7 o Windows 8.&lt;/p&gt;      &lt;p&gt;2. VS11 en Windows 7 aunque permite desarrollar varios tipos de proyectos convencionales, no permite desarrollar apps Metro Style, obviamente porque el OS no tiene todo el soporte requerido&lt;/p&gt;      &lt;p&gt;3. A pesar de que “parece” que VS11 soportara proyectos Windows Azure, esto aún no es posible, así que es requerido VS10 y unas configuraciones especiales que describiré en este post para que funcionen en Windows 8.        &lt;br /&gt;        &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7367.clip_5F00_image002_5F00_1F1D8959.jpg"&gt;&lt;img title="clip_image002" style="display: inline; background-image: none;" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8322.clip_5F00_image002_5F00_thumb_5F00_7E2A16B1.jpg" width="546" height="148" /&gt;&lt;/a&gt;        &lt;br /&gt;&lt;/p&gt;      &lt;p&gt;4. VS11 aún no soporta WP7. Así que también es necesario trabajarlo con VS10 y en Windows 8 se requieren ciertas configuraciones especiales que describiré en este post.&lt;/p&gt;      &lt;p&gt;Entonces, antes de entrar en materia, quiero que quedemos claros en que vamos a requerir Visual Studio 2010 instalado en Windows 8. Esto como les mencioné no tiene ninguna contraindicación ni aún con VS11 instalado, y puede ser cualquier versión. Yo estoy usando la Ultimate. Pero se puede Visual Studio Express for Windows Phone y Visual Studio Web Developer para Azure y gratuitamente tendremos operatividad total.&lt;/p&gt;      &lt;h3&gt;WINDOWS 8 + WINDOWS PHONE&lt;/h3&gt;      &lt;p&gt;Esto se hace posible gracias a la publicación del patch 7.1.1 del SDK de Windows Phone, cuyo principal objetivo es el permitir el desarrollo de apps de WP7 enfocadas a dispositivos económicos de solo 256MB de ram, al incluir una nueva imagen de emulador que tiene esta memoria. Sin embargo, aunque este fue el fin principal, se aprovechó la publicación para entre otras cosas, solucionar unos inconvenientes que impedían al emulador de Windows Phone 7 funcionar correctamente en Windows 8, por lo que ahora esto ya es posible, aunque no oficialmente soportado, sino hasta que salga el RTM de Windows 8.&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8741.clip_5F00_image003_5F00_241FC708.png"&gt;&lt;img title="clip_image003" style="display: inline; background-image: none;" border="0" alt="clip_image003" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6354.clip_5F00_image003_5F00_thumb_5F00_43626DDB.png" width="446" height="207" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;h4&gt;Procedimiento:&lt;/h4&gt;      &lt;p&gt;1. Instalar &lt;a href="http://windows.microsoft.com/en-US/windows-8/iso"&gt;Win8CP&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;2. Instalar la última versión de &lt;a href="http://www.xbox.com/en-US/LIVE/PC/DownloadClient"&gt;Games for Windows – LIVE&lt;/a&gt;. Esto es requerido para poder desarrollar juegos con XNA para WP7, dado que Windows 8 requiere archivos más nuevos que los que vienen con el SDK 7.1&lt;/p&gt;      &lt;p&gt;3. Instalar &lt;a href="http://www.microsoft.com/visualstudio/en-us/try"&gt;VS2010 Pro o superior&lt;/a&gt; si es posible; si no, proceder a 3&lt;/p&gt;      &lt;p&gt;4. Instalar &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27570"&gt;Windows Phone SDK 7.1&lt;/a&gt; (Incluye gratuitamente Visual Studio Express for Windows Phone 7)&lt;/p&gt;      &lt;p&gt;5. Instalar el &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29233"&gt;patch 7.1.1&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;6. Instalar &lt;a href="http://zune.net/en-US/products/software/download/default.htm"&gt;Zune&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;7. Desarrollar en &lt;a href="http://wnov.it/wp7Info"&gt;WP7&lt;/a&gt;!!!         &lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;&lt;/p&gt;      &lt;h3&gt;WINDOWS 8 + WINDOWS AZURE&lt;/h3&gt;      &lt;p&gt;Aquí solo es necesario activar algunas características adicionales del sistema operativo y luego descargar los bits requeridos.&lt;/p&gt;      &lt;p&gt;1. Activación de Características:&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;a. Presione TeclaWindows+F para abrir el cuadro de búsqueda y escriba Windows Features. Luego haga click en settings y escoja en los resultados &lt;b&gt;Turn Windows Features on or Off.            &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;        &lt;p&gt;b. Una vez allí, asegúrese de tener todas estas características activadas:          &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1856.clip_5F00_image004_5F00_7766E761.png"&gt;&lt;img title="clip_image004" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image004" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8546.clip_5F00_image004_5F00_thumb_5F00_59C4E695.png" width="449" height="1347" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;2. IDE: Instalar &lt;a href="http://www.microsoft.com/visualstudio/en-us/try"&gt;VS2010 Pro o superior&lt;/a&gt; o &lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express"&gt;Visual Web Developer 2010 Express&lt;/a&gt; como alternativa free&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;a. Instalar el Service Pack de &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=23691"&gt;VS2010&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;b. Descargar e Instalar &lt;a href="http://go.microsoft.com/fwlink/?LinkID=208140"&gt;MVC3&lt;/a&gt;&lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;3. DB: Windows Azure usa una base de datos SQL para emular el storage. La DB que debe instalarse es &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26729"&gt;SQL Express 2008 R2 with SP1&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;4. Descargar e instalar los componentes individuales de &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=28045"&gt;Windows Azure&lt;/a&gt; bien sea para x86 o para x64.         &lt;br /&gt;Hasta aquí ya estamos listos para desarrollar aplicaciones de Windows Azure convencionales. Pero a hoy, tenemos unas nuevas herramientas especialmente creadas para desarrollar aplicaciones para Windows 8 basadas en Windows Azure sobretodo para los servicios de notificaciones y almacenamiento. Aquí les muestro cómo habilitarlas:&lt;/p&gt;      &lt;p&gt;5. Apps de Windows 8 sobre Azure:        &lt;br /&gt;Descargar e instalar el &lt;a href="http://watwindows8.codeplex.com/releases/view/84166"&gt;Toolkit de Windows Azure para Windows 8&lt;/a&gt;&lt;/p&gt;      &lt;blockquote&gt;       &lt;p&gt;a. Instalar la última versión del &lt;a href="http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c"&gt;Nuget Package Manager&lt;/a&gt; (si existe ya instalada una versión distinta a la antigua, abrir Visual Studio en modo administrador y desinstalarlo desde el extensión manager el menú de tools)&lt;/p&gt;        &lt;p&gt;b. Ejecutar el script Setup.cmd que queda en el root de la instalación del anterior Toolkit         &lt;br /&gt;          &lt;br /&gt;Obtendremos:           &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1104.clip_5F00_image006_5F00_5229515B.jpg"&gt;&lt;img title="clip_image006" style="display: inline; background-image: none;" border="0" alt="clip_image006" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2642.clip_5F00_image006_5F00_thumb_5F00_69E088C1.jpg" width="529" height="396" /&gt;&lt;/a&gt;          &lt;br /&gt;&lt;/p&gt;     &lt;/blockquote&gt;      &lt;blockquote&gt;       &lt;p&gt;c. Después al abrir nuestro VS2010, nos encontraremos con que ya podemos crear Windows 8 Cloud Applications         &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4212.clip_5F00_image008_5F00_2F8512E0.jpg"&gt;&lt;img title="clip_image008" style="display: inline; background-image: none;" border="0" alt="clip_image008" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6763.clip_5F00_image008_5F00_thumb_5F00_278D707E.jpg" width="529" height="221" /&gt;&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;y en VS11 podremos crear aplicaciones basadas en Notificaciones más control de Acceso:           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4621.clip_5F00_image010_5F00_0699FDD7.jpg"&gt;&lt;img title="clip_image010" style="display: inline; background-image: none;" border="0" alt="clip_image010" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0181.clip_5F00_image010_5F00_thumb_5F00_0C74A170.jpg" width="531" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;/blockquote&gt;      &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;      &lt;h3&gt;&lt;b&gt;Conclusión:&lt;/b&gt;&lt;/h3&gt;      &lt;p&gt;Windows 8 Consumer Preview por ser aún una versión de evaluación requiere ciertas configuraciones especiales para poder servir como máquina de desarrollo de aplicaciones basadas en Windows Azure y para Windows Phone. En este post, vimos las acciones a tomar para poder lograrlo.&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10291620" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/04/07/windows-8-dev-machine.aspx</link>
      <pubDate>Sat, 07 Apr 2012 07:15:57 GMT</pubDate>
    </item>
    <item>
      <title>¿Está la nueva generación de ingenieros informáticos mal formada?</title>
      <description>&lt;p&gt;&lt;img src="http://4.bp.blogspot.com/--UwTvwWghRI/TeHgfCyEvdI/AAAAAAAAABI/rrLkfUJVfEI/s1600/travel-accident-insurance.jpg" width="336" height="269" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Leo un art&amp;iacute;culo de t&amp;iacute;tulo &amp;quot;Los CIO consideran mal formada a la nueva generaci&amp;oacute;n de ingenieros inform&amp;aacute;ticos&amp;quot; en Computer World que me ha hecho pegar un peque&amp;ntilde;o salto en mi silla.&lt;/p&gt;
&lt;p&gt;La r&amp;aacute;pida respuesta de quien quiere sobrevivir en un mundo tecnol&amp;oacute;gico como el actual, es pensar que uno mismo no se considera mal formado, y que el hecho de que haya gente mal formada en el mercado, lejos de perjudicarle en realidad le beneficia (punto de vista ego&amp;iacute;sta).&lt;/p&gt;
&lt;p&gt;Sin embargo, no es esperanzador, pensar que los CIO de las empresas (seg&amp;uacute;n expresa Computer World), piensan en un 90%, que los reci&amp;eacute;n licenciados no tienen unos conocimientos suficientes dentro del &amp;aacute;mbito de la gesti&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Seg&amp;uacute;n el mismo art&amp;iacute;culo, las carencias que hacen pensar a los CIO de esta forma, est&amp;aacute;n centradas en el dominio de herramientas inform&amp;aacute;ticas b&amp;aacute;sicas (programaci&amp;oacute;n, gesti&amp;oacute;n de ERP, gesti&amp;oacute;n de entornos de productividad y herramientas de BI). Adem&amp;aacute;s de esto, los CIO reconocen que est&amp;aacute;n necesitados de que los candidatos perfeccionen el dominio a otros idiomas.&lt;/p&gt;
&lt;p&gt;El final del art&amp;iacute;culo, culmina con una conclusi&amp;oacute;n que m&amp;aacute;s me suena a excusa barata que a otra cosa: &amp;quot;... estas carencias explican que las empresas prefieran a personal con experiencia en lugar de contratar a candidatos reci&amp;eacute;n titulados. Las exigencias de las empresas hacen que los procesos de contrataci&amp;oacute;n prime la productividad antes que la formaci&amp;oacute;n que se pueda realizar sobre un empleado.&amp;quot;.&lt;/p&gt;
&lt;p&gt;Voy por partes...&lt;/p&gt;
&lt;p&gt;En primer lugar, empezar&amp;eacute; por la exigencia de que los candidatos conozcan principalmente el ingl&amp;eacute;s.   &lt;br /&gt;Teniendo en cuenta que los &amp;uacute;ltimos Presidentes del Gobierno de Espa&amp;ntilde;a no sab&amp;iacute;an ingl&amp;eacute;s o franc&amp;eacute;s y que siempre han necesitado un traductor a su lado, &amp;iquest;c&amp;oacute;mo exigir que los reci&amp;eacute;n licenciados sepan m&amp;aacute;s ingl&amp;eacute;s que el Presidente del Gobierno?.    &lt;br /&gt;Estoy de acuerdo con que todos (me incluyo) debemos dominar la lengua de Shakespeare, pero exigir el dominio de un idioma a un reci&amp;eacute;n titulado, me hace pensar que los CIO lo que est&amp;aacute;n pensando realmente es en pagar poco por un candidato reci&amp;eacute;n titulado y que adem&amp;aacute;s sepa ingl&amp;eacute;s... es decir, que el candidato tenga m&amp;aacute;s de lo que pienso pagar por &amp;eacute;l.&lt;/p&gt;
&lt;p&gt;En segundo lugar, voy a comentar aspectos relativos a las carencias t&amp;eacute;cnicas que denuncian el 90% de los CIO que hay en el mercado.   &lt;br /&gt;Adem&amp;aacute;s de que el estudio se centra en la rama de gesti&amp;oacute;n &amp;uacute;nicamente, aqu&amp;iacute; podemos decir eso de &amp;quot;la pescadilla que se muerde la cola&amp;quot;.    &lt;br /&gt;&amp;iquest;Hay alg&amp;uacute;n CIO que crea realmente que un reci&amp;eacute;n titulado sale dominando un paquete de gesti&amp;oacute;n de ERP, un entorno de productividad, una herramienta de BI o simplemente sabe realmente programar?.    &lt;br /&gt;Porque si hay alg&amp;uacute;n CIO que piensa as&amp;iacute; y est&amp;aacute; leyendo esto, le dir&amp;eacute; con mucho cari&amp;ntilde;o que se baje del guindo.    &lt;br /&gt;Al igual que ning&amp;uacute;n reci&amp;eacute;n titulado puede ser CIO en una empresa, ning&amp;uacute;n reci&amp;eacute;n titulado puede tener de salida todos esos conocimientos, m&amp;aacute;s que nada porque es necesario tener algo que un reci&amp;eacute;n titulado no tiene... EXPERIENCIA.&lt;/p&gt;
&lt;p&gt;Pero adem&amp;aacute;s de la EXPERIENCIA, tambi&amp;eacute;n hay otro aspecto muy importante a tener en cuenta... RECURSOS (y no confundamos recursos con personas, algo que odio mentar cuando se habla de recursos).&lt;/p&gt;
&lt;p&gt;&amp;iquest;Tiene acaso un reci&amp;eacute;n titulado la posibilidad de probar, trastear, tocar, etc un entorno real o virtual ERP, de gesti&amp;oacute;n de productividad, de herramientas BI o de programaci&amp;oacute;n?. En el 99% NO.   &lt;br /&gt;Pero es que aunque lo tuviera, &amp;iquest;hay gente cerca que le diga a ese reci&amp;eacute;n titulado que est&amp;aacute; haciendo las cosas mal?. En el 99% de ese 1% restante, NO.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; significa esto entonces?.   &lt;br /&gt;QUE LA FORMACI&amp;Oacute;N ES IMPORTANTE.&lt;/p&gt;
&lt;p&gt;Bien, pero la formaci&amp;oacute;n, &amp;iquest;se hace en la empresa o en casa?.&lt;/p&gt;
&lt;p&gt;Y es aqu&amp;iacute; donde tocamos otro aspecto sensible que las empersas obvian y que los CIO aqu&amp;iacute; omiten, en mi opini&amp;oacute;n, interesadamente.&lt;/p&gt;
&lt;p&gt;El empleado, no s&amp;oacute;lo los reci&amp;eacute;n titulados, tambi&amp;eacute;n los de mayor rango dentro del organigrama empresarial, NECESITAN SER FORMADOS CONTINUAMENTE.&lt;/p&gt;
&lt;p&gt;Y es que la autoformaci&amp;oacute;n est&amp;aacute; muy bien porque a la empresa le hace olvidarse de esas necesidades, y los gastos corren a cargo de los empleados que utilizan su tiempo libre en adquirir conocimientos que luego aplicar&amp;aacute; a su trabajo tarde o temprano, por lo que la empresa cubre unas necesidades resueltas por el empleado de forma altru&amp;iacute;sta.&lt;/p&gt;
&lt;p&gt;Sin embargo, yo del art&amp;iacute;culo que he le&amp;iacute;do en Computer World saco una conclusi&amp;oacute;n bastante triste, y es que los CIO que han rellenado esa encuesta y forman parte de ese 90%, piensan como excusa de la no contrataci&amp;oacute;n a j&amp;oacute;venes reci&amp;eacute;n titulados, que la pelota&amp;nbsp; est&amp;aacute; en el tejado de los inform&amp;aacute;ticos de nueva generaci&amp;oacute;n, cuando en realidad, ellos deben pensar que realmente NADIE HA NACIDO APRENDIDO, y que PEDIR PERAS AL OLMO es una utop&amp;iacute;a.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Alguien cree realmente que los reci&amp;eacute;n titulados sale con los mismos o mayores conocimientos que un inform&amp;aacute;tico con no s&amp;eacute; cuantos a&amp;ntilde;os de experiencia?.&lt;/p&gt;
&lt;p&gt;Que se hagan la pregunta a la inversa y piensen si una persona reci&amp;eacute;n titulada de Empresariales por ejemplo podr&amp;iacute;a ser CIO de una empresa. &amp;iquest;A qu&amp;eacute; no?. Pues exactamente lo mismo aqu&amp;iacute; pero para los inform&amp;aacute;ticos. ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enlaces&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.idg.es/computerworld/Los-CIO-consideran-mal-formada-a-la-nueva-generaci/seccion-factor/noticia-119756"&gt;Art&amp;iacute;culo de Computer World&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.itcio.es/liderazgo-estrategia/informes/1010777014702/90-cios-cree-universidad-no-forma.1.html"&gt;La misma noticia en ITCIO.es&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204167" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/02/191-est-225-la-nueva-generaci-243-n-de-ingenieros-inform-225-ticos-mal-formada.aspx</link>
      <pubDate>Mon, 02 Apr 2012 07:30:00 GMT</pubDate>
    </item>
    <item>
      <title>¡Renovado como MVP!… ¡y van 11!</title>
      <description>&lt;p&gt;&lt;img height="140" width="89" src="http://b0sggq.tuk.livefilestore.com/y1pQyP0L2ZqeK0bCdLOXrcMGWzkpCE5JG5gCS1YMtqVpPZpf6GUPJ4rqLE6RaLs4i6O8FbmlTxOENs/00030.png" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Ayer tuve un d&amp;iacute;a fant&amp;aacute;stico, no lo voy a negar.&lt;/p&gt;
&lt;p&gt;Celebr&amp;eacute; mi cumplea&amp;ntilde;os en familia y para colmo, Microsoft me comunic&amp;oacute; la renovaci&amp;oacute;n como MVP en VB un a&amp;ntilde;o m&amp;aacute;s.&lt;/p&gt;
&lt;p&gt;Si considero dif&amp;iacute;cil la renovaci&amp;oacute;n como MVP, m&amp;aacute;s a&amp;uacute;n en estos momentos de crisis y problemas varios que todos de forma directa o indirecta estamos sufriendo.   &lt;br /&gt;A eso, hay que unirle la fabulosa presencia de cada vez mejores profesionales en el campo, que hacen que la renovaci&amp;oacute;n sea cada a&amp;ntilde;o que pasa, m&amp;aacute;s dif&amp;iacute;cil.    &lt;br /&gt;Lo bueno de esa fant&amp;aacute;stica competencia es que le hace a uno seguir apretando para no perder comba con la tecnolog&amp;iacute;a.&lt;/p&gt;
&lt;p&gt;Esa competencia que a algunos les preocupa, a otros nos encanta porque lo &amp;uacute;nico a lo que nos invita es a tratar de ser todos cada vez mejores en nuestros campos.&lt;/p&gt;
&lt;p&gt;As&amp;iacute; que reconozco que 11 a&amp;ntilde;os seguidos como MVP son muchos a&amp;ntilde;os, y aunque uno se acostumbra gratamente a ello, no ser&amp;iacute;a completamente sincero con vosotros si dijera que esto seguir&amp;aacute; siendo siempre as&amp;iacute;. S&amp;eacute; que alg&amp;uacute;n d&amp;iacute;a esto parar&amp;aacute;, as&amp;iacute; que como dice la frase, un a&amp;ntilde;o m&amp;aacute;s... Carpe Diem. :)&lt;/p&gt;
&lt;p&gt;Para este a&amp;ntilde;o, y despu&amp;eacute;s de alg&amp;uacute;n que otro sobresalto l&amp;oacute;gico de la situaci&amp;oacute;n en la que vivimos, espero poder dar m&amp;aacute;s y mejor de m&amp;iacute; mismo. Con eso me conformo ampliamente.&lt;/p&gt;
&lt;p&gt;Muchas gracias a todos los que me hab&amp;eacute;is felicitado por tel&amp;eacute;fono, mensajes, etc. &amp;iexcl;Os lo agradezco mucho!. :)&lt;/p&gt;
&lt;p&gt;&amp;iexcl;Seguimos en la brecha!&lt;/p&gt;
&lt;p&gt;P.D.: Un recuerdo especial a los que no han podido ser nominados como MVPs, ya sea porque no han sido renovados, o porque pensaban que les iban a nominar pero no les han nominado&amp;hellip; a todos ellos&amp;hellip; NO DESESPER&amp;Eacute;IS, PORQUE &amp;iexcl;EL QUE SIEMBRA SIEMPRE RECOGE!. ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204166" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/04/02/161-renovado-como-mvp-161-y-van-11.aspx</link>
      <pubDate>Mon, 02 Apr 2012 06:30:00 GMT</pubDate>
    </item>
    <item>
      <title>Windows Phone SDK 7.1.1 Update - RTW - GO LIVE</title>
      <description>&lt;p&gt;&lt;img height="135" width="232" src="http://pocketnow.com/html/portal/news/0000019217//Windows_Phone_New_Logo2.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Microsoft ha publicado la actualizaci&amp;oacute;n del SDK o kit de desarrollo de software para Windows Phone. Esta actualizaci&amp;oacute;n corresponde a la versi&amp;oacute;n 7.1.1.&lt;/p&gt;
&lt;p&gt;Esta nueva versi&amp;oacute;n DEL SDK, ofrece a los desarrolladores herramientas que les faciliten el desarrollo de aplicaciones para dispositivos m&amp;oacute;viles Windows Phone de 256 MB.&lt;/p&gt;
&lt;p&gt;Recordemos que recientemente algunas compa&amp;ntilde;&amp;iacute;as como Nokia han sacado al mercado dispositivos m&amp;oacute;viles de bajo coste y dotados de Windows Phone. Al ser dispositivos de bajo coste, &amp;eacute;stos poseen todas las funcionalidades de sus hom&amp;oacute;logos pero al ser m&amp;aacute;s econ&amp;oacute;micos su hardware se ha visto recortado. Por ejemplo, en lugar de disponer de 512 Mb de memoria, disponen de 256 Mb de memoria.&lt;/p&gt;
&lt;p&gt;Esto conlleva a su vez, a revisar los desarrollos de nuestras aplicaciones de Windows Phone ya que deber&amp;aacute;n estar preparadas para soportar este tipo de dispositivos.&lt;/p&gt;
&lt;p&gt;Existen por lo tanto unas recomendaciones de Microsoft al respecto sobre las que voy a pasar muy por encima en estos momentos (mirad la secci&amp;oacute;n de enlaces para obtener m&amp;aacute;s informaci&amp;oacute;n al respecto).&lt;/p&gt;
&lt;p&gt;Sobre la instalaci&amp;oacute;n del SDK 7.1.1, Microsoft recomienda desinstalar todos los KB2669191 que corresponden con:   &lt;br /&gt;- Windows Phone Emulator.    &lt;br /&gt;- Windows Phone SDK 7.1 Assemblies.    &lt;br /&gt;- Windows Phone SDK 7.1 Add-in for Visual Studio 2010.    &lt;br /&gt;- Hotfix for Windows Phone SDK 7.1 ENU.&lt;/p&gt;
&lt;p&gt;La versi&amp;oacute;n RTW del SDK 7.1.1 corresponde con la versi&amp;oacute;n 40219.390 y con la versi&amp;oacute;n de adaptaci&amp;oacute;n 8773.20120308-1218.   &lt;br /&gt;Sobre el Zune, no existe novedad alguna y se debe utilizar la versi&amp;oacute;n 04.08.2345.00 del mismo.&lt;/p&gt;
&lt;p&gt;Finalmente, recuerda que el SDK es compatible con Windows 8 Consumer Preview y que est&amp;aacute; disponible en Ingl&amp;eacute;s, Espa&amp;ntilde;ol, Chino, Franc&amp;eacute;s, Alem&amp;aacute;n, Italiano, Japon&amp;eacute;s, Coreano y Ruso, y que su tama&amp;ntilde;o de descarga es de unos 290 Mb aproximadamente.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff402530(v=VS.92).aspx"&gt;Informaci&amp;oacute;n sobre la instalaci&amp;oacute;n de Windows Phone SDK&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh855084(v=vs.92).aspx"&gt;Informaci&amp;oacute;n de las novedades de Windows Phone SDK 7.1.1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29233"&gt;Acceso a la descarga de Windows Phone SDK 7.1.1 (290Mb)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.developer.nokia.com/Community/Wiki/Video_playback_guidance_for_Nokia_Lumia_610"&gt;Video playback guidance for Nokia Lumia 610 con informaci&amp;oacute;n interesante para los desarrolladores de aplicaciones Windows Phone de cara a su adaptaci&amp;oacute;n a los nuevos dispositivos&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204049" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/03/27/windows-phone-sdk-7-1-1-update-rtw-go-live.aspx</link>
      <pubDate>Tue, 27 Mar 2012 08:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Pimp my rIDE</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/03/26/pimp-my-ride.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0160.Visual_2D00_Pimp_2D00_My_2D00_Ride_2D00_XE_5F00_36789196.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="Visual Pimp-My-Ride-XE" border="0" alt="Visual Pimp-My-Ride-XE" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4061.Visual_2D00_Pimp_2D00_My_2D00_Ride_2D00_XE_5F00_thumb_5F00_4D576312.jpg" width="508" height="367" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Recuerdan ese reality de MTV con XZibit donde tomaban un auto y le ponían cientos de mejoras para que su conducción fuera mucho más agradable?&lt;/p&gt;      &lt;p&gt;Pues lo mismo pasa con Visual Studio!&lt;/p&gt;      &lt;p&gt;Usé la alegoría de rIDE con r de rapid :P Esto obviamente, dado que nuestro IDE (Visual Studio) nos permite ir de cero a una aplicación completamente funcional, in no time!&lt;/p&gt;      &lt;p&gt;Para muchos, Visual Studio es nuestra segunda casa. &lt;/p&gt;      &lt;p&gt;No para tantos lo era hace unos años (me incluyo en los que sí), cuando a pesar de que era bueno, no era tan completo como hoy en día, de manera que de vez en cuando teníamos que salir de casa para ir a hacer ciertas tareas de desarrollo en otras tools independientes.&lt;/p&gt;      &lt;p&gt;&lt;i&gt;-Uy! Ojalá tuviera algo que me alineara automáticamente todas las asignaciones por el igual. &lt;/i&gt;&lt;/p&gt;      &lt;p&gt;O por ejemplo: &lt;i&gt;-Ufff! De lujo si pudiera implementar un tema basado en Matrix para desarrollar. &lt;/i&gt;&lt;/p&gt;      &lt;p&gt;O tal vez: &lt;i&gt;-Súper si pudiera enviar por correo automáticamente un segmento de código que hice para que mi jefe vea que soy bueno programando lo que él no pudo &lt;/i&gt;&lt;/p&gt;      &lt;p&gt;Yo siempre solía soñar con eso y tenía mi propia biblioteca de macros para ejecutar tareas dentro de VS. &lt;/p&gt;      &lt;p&gt;Pero las macros es lo más sencillo que se puede hacer. &lt;/p&gt;      &lt;p&gt;Luego cuando entré al equipo de desarrollo de un lenguaje de programación sobre .NET llamado &lt;a href="http://www.apl2000.com/products.php"&gt;VisualAPL&lt;/a&gt; basado en el viejo APL (un lenguaje de programación basado en símbolos muy poderoso para cálculos financieros avanzados) conocí todo lo que se podía hacer con el modelo de &lt;a href="http://msdn.microsoft.com/en-us/library/xc52cke4.aspx"&gt;extensibilidad de Visual Studio&lt;/a&gt; y fue glorioso, la verdad.&lt;/p&gt;      &lt;p&gt;Este post sin embargo, no trata de cómo crear estos addons y extensiones sino más bien de cómo usar los existentes y a mi modo de ver, cuáles son los más útiles.&lt;/p&gt;      &lt;p&gt;Sucede que como yo, había miles de desarrolladores con sus ideas para mejorar Visual Studio y por ende se abrió la gran &lt;a href="http://visualstudiogallery.msdn.microsoft.com/"&gt;Visual Studio Gallery&lt;/a&gt;. Allí aquellos desarrolladores hard core que lo que no encuentran lo construyen pueden exponer sus creaciones para que estén disponibles al resto de la comunidad. De manera que podemos encontrar un sinnúmero de aditamentos que nos van a permitir personalizar nuestro IDE para ser aún más productivos y realmente hacer un Pimping a nuestro rIDE.&lt;/p&gt;      &lt;p&gt;En el video he usado Visual Studio 2010 Ultimate, pero en general con las extensiones de VS ocurre que siempre se ponen disponibles para las nuevas versiones de Visual Studio que van saliendo. En este caso, la versión 11. De hecho, hay extensiones que han sido tan buenas y usadas, que en Visual Studio 11 ya vienen nativas y disponibles sin instalaciones adicionales, como lo veremos en el video. Entonces pasemos a la acción, donde enseño las extensiones que siempre aplico a mi Visual Studio:&lt;/p&gt;     &lt;iframe height="315" src="http://www.youtube.com/embed/peH4FAkrCho" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;      &lt;p&gt;&lt;b&gt;Addons Usados:&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Aquí el listado de las extensiones mostradas:&lt;/p&gt;      &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;strong&gt;Nombre&lt;/strong&gt;&lt;/p&gt;             &lt;strong&gt;&lt;/strong&gt;&lt;/td&gt;           &lt;strong&gt;&lt;/strong&gt;            &lt;td valign="top" width="319"&gt;&lt;strong&gt;&lt;/strong&gt;              &lt;p&gt;&lt;strong&gt;URL&lt;/strong&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Productivity Power Tools&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/g4fUGG"&gt;http://bit.ly/g4fUGG&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Background Customizer&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/fXhJOF"&gt;http://bit.ly/fXhJOF&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Color Theme Editor&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/fPKKEV"&gt;http://bit.ly/fPKKEV&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Dark Expression Blend Color Theme&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/aYDWOG"&gt;http://bit.ly/aYDWOG&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;WarMatrix Theme&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://wnov.it/WarNovTheme"&gt;http://wnov.it/WarNovTheme&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Hide Main Menu&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/hQoFYI"&gt;http://bit.ly/hQoFYI&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;CSharpIntellisensePresenter&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/GLp8ht"&gt;http://bit.ly/GLp8ht&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Numbered Bookmarks&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/hSbRdy"&gt;http://bit.ly/hSbRdy&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;Presentation Zoom&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/hAMtDI"&gt;http://bit.ly/hAMtDI&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="319"&gt;             &lt;p&gt;MoveToRegionVSX&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="319"&gt;             &lt;p&gt;&lt;a href="http://bit.ly/GJZ5M1"&gt;http://bit.ly/GJZ5M1&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;      &lt;p&gt;Y tú? Ya usas alguna extensión no citada aquí y quieres recomendarla? Súper si la adjuntas a este post en los comentarios!&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10287662" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/03/26/pimp-my-ride.aspx</link>
      <pubDate>Mon, 26 Mar 2012 17:39:28 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers]–Nuevo Architecture Layers Patterns v2.0 [ESN]</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="773"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_2C86177E.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="VS11Beta" border="0" alt="VS11Beta" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_thumb_5F00_04DF9B54.png" width="244" height="88" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="571"&gt;         &lt;p&gt;&lt;font size="2" face="Segoe UI Light"&gt;Me es muy grato compartir con ustedes que a partir de hoy se ha liberado una nueva versión de la extensión para Visual Studio, el cual agrega nuevos elementos al toolbox para el diseñador de diagramas de capas (UML Layer Diagrams).&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;         &lt;table border="0" cellspacing="0" cellpadding="2" width="249"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="249"&gt;                 &lt;p&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/94ca6b70-539c-4f49-98c9-0550a4c044bf"&gt;&lt;font size="2" face="Segoe UI Light"&gt;Descargar desde la galería de Visual Studio&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;              &lt;tr&gt;               &lt;td valign="top" width="249"&gt;                 &lt;table border="0" cellspacing="0" cellpadding="2" width="249"&gt;&lt;tbody&gt;                     &lt;tr&gt;                       &lt;td valign="top" width="249"&gt;                         &lt;p&gt;&lt;a href="http://archlayerspatterns.codeplex.com/"&gt;&lt;font size="2" face="Segoe UI Light"&gt;Sitio Codeplex&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;                       &lt;/td&gt;                     &lt;/tr&gt;                   &lt;/tbody&gt;&lt;/table&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;        &lt;td valign="top" width="571"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ArchLayerPatterns_5F00_2F4BCC71.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="ArchLayerPatterns" border="0" alt="ArchLayerPatterns" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ArchLayerPatterns_5F00_thumb_5F00_636FCFEA.png" width="544" height="327" /&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=203908" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/19/vs-alm-rangers-nuevo-architecture-layers-patterns-v2-0-esn.aspx</link>
      <pubDate>Mon, 19 Mar 2012 10:16:37 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] - Architecture Layer Patterns v2.0</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="731"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_5AEAE6A6.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="VS11Beta" border="0" alt="VS11Beta" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_thumb_5F00_2C252E04.png" width="244" height="88" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td valign="top" width="529"&gt;           &lt;br /&gt;&lt;font size="2"&gt;&lt;font face="Segoe UI Light"&gt;I am happy to announce the new release of the Architecture Layer Patterns extension for Visual Studio 11 Ultimate Beta.&lt;/font&gt;               &lt;br /&gt;              &lt;br /&gt;&lt;/font&gt;&lt;font face="Segoe UI Light"&gt;&lt;font size="2"&gt;&lt;strong&gt;Short Project Description&lt;/strong&gt;                 &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;            &lt;p&gt;&lt;font size="2" face="Segoe UI Light"&gt;Architecture Layer Patterns extension for Visual Studio add new items to the toolbox based on the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd673617.aspx"&gt;&lt;font size="2" face="Segoe UI Light"&gt;Microsoft Application Architecture Guide, 2nd Edition&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Segoe UI Light"&gt; for the layer diagram designer of Visual Studio Ultimate.&amp;#160; &lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="200"&gt;           &lt;br /&gt;            &lt;table border="0" cellspacing="0" cellpadding="2" width="249"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="249"&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/94ca6b70-539c-4f49-98c9-0550a4c044bf"&gt;&lt;font size="2" face="Segoe UI Light"&gt;Download Visual Studio Gallery&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;               &lt;/tr&gt;                &lt;tr&gt;                 &lt;td valign="top" width="249"&gt;&lt;a href="http://archlayerspatterns.codeplex.com/"&gt;&lt;font size="2" face="Segoe UI Light"&gt;Codeplex Site&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;            &lt;br /&gt;&lt;/td&gt;          &lt;td valign="top" width="529"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ArchLayerPatterns_5F00_326C0492.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="ArchLayerPatterns" border="0" alt="ArchLayerPatterns" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ArchLayerPatterns_5F00_thumb_5F00_6A9A55DD.png" width="555" height="334" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203907" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/19/vs-alm-rangers-architecture-layers-patterns-v2-0-esn.aspx</link>
      <pubDate>Mon, 19 Mar 2012 09:47:09 GMT</pubDate>
    </item>
    <item>
      <title>[Project Server 2010] – Ambiente de Desarrollo Continuación – Instalación de Project Server 2010</title>
      <description>&lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En un &lt;/font&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2012/03/17/sql2012-instalando-power-view-2012.aspx"&gt;&lt;font size="2"&gt;post anterior&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; empezamos con la configuración inicial de un ambiente virtual de desarrollo, luego &lt;/font&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2012/03/17/visual-studio-11-continuaci-243-n-instalaci-243-n-de-visual-studio-11-en-windows-server-8-beta.aspx"&gt;&lt;font size="2"&gt;instalamos Visual Studio 11 Ultimate Beta&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;, en este post veremos como agregarle Project Server 2010 con Service Pack 1 a nuestro ambiente de desarrollo. Como pre-requisito para este post les recomiendo revisar las siguientes publicaciones para entendimiento del ambiente donde vamos a hacer la instalación:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2012/03/17/sql2012-instalando-power-view-2012.aspx"&gt;&lt;font size="2"&gt;Configuración inicial e instalación de Power View 2012&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2012/03/17/visual-studio-11-continuaci-243-n-instalaci-243-n-de-visual-studio-11-en-windows-server-8-beta.aspx"&gt;&lt;font size="2"&gt;Instalación de Visual Studio 11 Ultimate Beta&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Creación de host-header para Project Server 2010&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;El sitio de PWA ( Project Web Access) lo vamos a ubicar en una web application diferente a la creada inicialmente para power view 2012, y para evitar el estar recordando los puertos, vamos a crear en nuestro servidor de DNS un Alias, para esto debemos iniciar la consola de administración del DNS, ir hasta nuestro dominio latam.local, clic derecho y seleccionar New Alias (CNAME).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/W2k3R2AD_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_35_2D00_36_5F00_21BE434F.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="W2k3R2AD-2012-03-16-23-35-36" border="0" alt="W2k3R2AD-2012-03-16-23-35-36" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/W2k3R2AD_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_35_2D00_36_5F00_thumb_5F00_19E62AE0.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ingresamos la siguiente información en la pantalla New Resource Record.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/W2k3R2AD_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_35_2D00_55_5F00_4D7E7171.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="W2k3R2AD-2012-03-16-23-35-55" border="0" alt="W2k3R2AD-2012-03-16-23-35-55" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/W2k3R2AD_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_35_2D00_55_5F00_thumb_5F00_44AE6925.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Instalación de Project Server 2010&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;La instalación de Project Server no tiene mayor complejidad, es cuestión de insertar el disco de instalación, ingresar la clave de producto, aceptar los términos de licencia y adelante con el asistente.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_27_2D00_25_5F00_5FB71266.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-27-25" border="0" alt="Win8SrvBeta-2012-03-16-23-27-25" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_27_2D00_25_5F00_thumb_5F00_6F66819D.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_27_2D00_31_5F00_1F30FD92.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-27-31" border="0" alt="Win8SrvBeta-2012-03-16-23-27-31" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_27_2D00_31_5F00_thumb_5F00_6609FAC2.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_15_5F00_269C2165.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-53-15" border="0" alt="Win8SrvBeta-2012-03-16-23-53-15" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_15_5F00_thumb_5F00_3DD70009.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Ejecución de Herramienta de Configuración de SharePoint 2010&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Vamos a menu de inicio de Windows Server 8 ( también tiene el estilo Metro), seleccionamos (clic derecho) el asistente de configuración de SharePoint 2010 y ejecutamos como administrador y nuevamente adelante con el asistente.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_28_5F00_7096E0B0.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-53-28" border="0" alt="Win8SrvBeta-2012-03-16-23-53-28" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_28_5F00_thumb_5F00_2AE230C5.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_42_5F00_58BF5DB0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-53-42" border="0" alt="Win8SrvBeta-2012-03-16-23-53-42" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_42_5F00_thumb_5F00_6DED6358.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_47_5F00_031B6901.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-53-47" border="0" alt="Win8SrvBeta-2012-03-16-23-53-47" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_47_5F00_thumb_5F00_37F84871.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_59_5F00_3A05216D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-16-23-53-59" border="0" alt="Win8SrvBeta-2012-03-16-23-53-59" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_23_2D00_53_2D00_59_5F00_thumb_5F00_2F181A58.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Configuración inicial del servicio de Project Server 2010&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Al finalizar la ejecución del asistente de configuración de SharePoint 2010 y hacer clic en Finalizar este nos redireccionará directamente al asistente de la administración central de sharepoint, donde configuraremos los servicios de PS 2010.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_03_2D00_24_5F00_0AC31009.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-03-24" border="0" alt="Win8SrvBeta-2012-03-17-00-03-24" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_03_2D00_24_5F00_thumb_5F00_2E9BC196.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_03_2D00_51_5F00_4A7CD0C1.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-03-51" border="0" alt="Win8SrvBeta-2012-03-17-00-03-51" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_03_2D00_51_5F00_thumb_5F00_65F1ACF7.png" width="644" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Crear Web Application donde va a configurar el PWA ( Project Web Access)&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez que el asistente complete su configuración vamos a ir a&amp;#160; Application Management –&amp;gt; Manage Web Applications.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_06_2D00_20_5F00_3F7FA3DF.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-06-20" border="0" alt="Win8SrvBeta-2012-03-17-00-06-20" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_06_2D00_20_5F00_thumb_5F00_42D115BA.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la página de Web Applications seleccionamos New.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_06_2D00_25_5F00_16846909.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-06-25" border="0" alt="Win8SrvBeta-2012-03-17-00-06-25" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_06_2D00_25_5F00_thumb_5F00_20F5175C.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ingresamos el nombre de nuestra web application, colocamos el puerto 80 y en el campo host header escribimos el alias que creamos en nuestro DNS.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_07_2D00_01_5F00_03531690.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-07-01" border="0" alt="Win8SrvBeta-2012-03-17-00-07-01" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_07_2D00_01_5F00_thumb_5F00_70DAA00D.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la misma página, casi al final seleccionamos en la asociación con servicios Custom y seleccionamos los siguientes service applications. Son las requeridas por Project Server 2010.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_12_2D00_04_5F00_1F9032E3.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-12-04" border="0" alt="Win8SrvBeta-2012-03-17-00-12-04" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_12_2D00_04_5F00_thumb_5F00_5F2A69A8.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Configuración del PWA ( Project Web Access)&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez creada la web application, vamos nuevamente a Application Management –&amp;gt; Manage Service Applications, y seleccionamos Project Server Service Application.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_15_2D00_37_5F00_17C4EDE9.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-15-37" border="0" alt="Win8SrvBeta-2012-03-17-00-15-37" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_15_2D00_37_5F00_thumb_5F00_76189F4A.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Hacemos clic en Create Project Web App site&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_15_2D00_45_5F00_526C4B25.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-15-45" border="0" alt="Win8SrvBeta-2012-03-17-00-15-45" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_15_2D00_45_5F00_thumb_5F00_041742AE.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Seleccionamos la Web Application proyectos, dejamos los valores por defecto y adelante con la creación del PWA.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_18_2D00_08_5F00_6A7F8FB3.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-18-08" border="0" alt="Win8SrvBeta-2012-03-17-00-18-08" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_18_2D00_08_5F00_thumb_5F00_344DF197.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la página inicial usted podrá ver el avance de la configuración de su PWA.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_24_2D00_56_5F00_2E632831.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-24-56" border="0" alt="Win8SrvBeta-2012-03-17-00-24-56" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_24_2D00_56_5F00_thumb_5F00_1205C044.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez finalizada la creación del PWA, abre un navegador y digita en la url &lt;/font&gt;&lt;a href="http://proyectos/pwa"&gt;&lt;font size="2"&gt;http://proyectos/pwa&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_27_2D00_10_5F00_38A426C4.png"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-17-00-27-10" border="0" alt="Win8SrvBeta-2012-03-17-00-27-10" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_17_2D00_00_2D00_27_2D00_10_5F00_thumb_5F00_50E71B12.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&amp;#160;&lt;/font&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=203889" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/17/project-server-2010-ambiente-de-desarrollo-continuaci-243-n-instalaci-243-n-de-project-server-2010.aspx</link>
      <pubDate>Sat, 17 Mar 2012 05:56:00 GMT</pubDate>
    </item>
    <item>
      <title>[Visual Studio 11]–Continuación–Instalación de Visual Studio 11 en Windows Server 8 Beta</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="729" cellpadding="2" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_1CAB963E.png"&gt;&lt;img height="88" width="244" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta_5F00_thumb_5F00_30C4B2C7.png" alt="VS11Beta" border="0" title="VS11Beta" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="527" valign="top"&gt;En un &lt;a href="http://geeks.ms/blogs/ffagas/archive/2012/03/17/sql2012-instalando-power-view-2012.aspx"&gt;post anterior&lt;/a&gt; empezamos con la instalaci&amp;oacute;n de un ambiente para desarrollo con los siguientes productos: &lt;br /&gt;&lt;br /&gt;
&lt;table width="400" cellpadding="2" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="400" valign="top"&gt;
&lt;ul&gt;
&lt;li&gt;Windows Server 8 Beta&lt;/li&gt;
&lt;li&gt;SQL Server 2012 RTM Enterprise
&lt;ul&gt;
&lt;li&gt;PowerPivot&lt;/li&gt;
&lt;li&gt;Power View&lt;/li&gt;
&lt;li&gt;Reporting Services integrado con SharePoint 2010&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SharePoint 2010 con SP 1 Enterprise&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;En este post continuaremos con la instalaci&amp;oacute;n de Visual Studio 11 para poder crear soluciones para SharePoint 2010 con este nuevo release de Visual Studio.&amp;nbsp; En realidad no es nada complicada, es cuesti&amp;oacute;n de poner el disco y adelante. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_50_2D00_06_5F00_5007599A.png"&gt;&lt;img height="283" width="644" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_50_2D00_06_5F00_thumb_5F00_5431315F.png" alt="Win8SrvBeta-2012-03-16-20-50-06" border="0" title="Win8SrvBeta-2012-03-16-20-50-06" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_52_2D00_14_5F00_30485A05.png"&gt;&lt;img height="459" width="644" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_52_2D00_14_5F00_thumb_5F00_53B4D89D.png" alt="Win8SrvBeta-2012-03-16-20-52-14" border="0" title="Win8SrvBeta-2012-03-16-20-52-14" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_52_2D00_49_5F00_7ABF7212.png"&gt;&lt;img height="460" width="644" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_52_2D00_49_5F00_thumb_5F00_16344E49.png" alt="Win8SrvBeta-2012-03-16-20-52-49" border="0" title="Win8SrvBeta-2012-03-16-20-52-49" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_21_2D00_50_2D00_46_5F00_1E1BCADE.png"&gt;&lt;img height="484" width="644" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_21_2D00_50_2D00_46_5F00_thumb_5F00_40AFE38C.png" alt="Win8SrvBeta-2012-03-16-21-50-46" border="0" title="Win8SrvBeta-2012-03-16-21-50-46" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/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=203887" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/17/visual-studio-11-continuaci-243-n-instalaci-243-n-de-visual-studio-11-en-windows-server-8-beta.aspx</link>
      <pubDate>Sat, 17 Mar 2012 02:54:00 GMT</pubDate>
    </item>
    <item>
      <title>[SQL2012] – Instalando Power View 2012</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En este artículo veremos como instalar un ambiente de desarrollo para SharePoint 2010 sobre Windows Server 8 “Beta” con SQL Server 2012, enfocandonos inicialmente en la instalación y configuración de PowerPivot y Reporting Services 2012 integrado con SharePoint para poder explorar una nueva herramienta ad-hoc como lo es Power View. Lo genial de Power View es la facilidad para crear y visualizar informes de manera sencilla y rápida a traves de SharePoint 2010.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Descripción del Ambiente:&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Servidor de Active Directory, DNS, SMTP y DHCP (servidor 1): &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;1 Procesador virtual&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;256 mb de ram&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;SO: Windows Server 2003 R2&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Dominio: latam.local&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Cuentas de dominio&lt;/font&gt;:&lt;/span&gt; &lt;/font&gt;        &lt;ul&gt;         &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Servers Admin: srvadmin. &lt;/font&gt;&lt;/span&gt;            &lt;ul&gt;             &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Esta cuenta se utiliza para iniciar sesión en el servidor 2 para realizar las instalaciones y configuraciones de los productos&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;              &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Miembro del grupo Domain Admin&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;          &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;SQLService&lt;/font&gt;:&lt;/span&gt;&lt;/font&gt;            &lt;ul&gt;             &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Esta cuenta iniciará todos los servicios de SQL Server 2012. Nota: No es la mejor práctica para ambientes de producción, este ambiente es para demos, desarrollo y test&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;              &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Usuario de Dominio&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;              &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Miembro del grupo Administrators del servidor 2&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;          &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;ShrPointService&lt;/font&gt;:&lt;/span&gt; &lt;/font&gt;            &lt;ul&gt;             &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Esta cuenta iniciará todos los servicios de SharePoint. Nota: No es la mejor práctica para ambientes de producción, este ambiente es para demos, desarrollo y test&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;              &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Usuario de Dominio&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;              &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Miembro del grupo Administrators del servidor 2&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;           &lt;/ul&gt;         &lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Servidor de Desarrollo (Servidor 2: DevSrv)&lt;/font&gt;:&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;4 procesadores virtuales&lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;4 GB de RAM &lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;Disco 1: SO y programas ( 100GB) &lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;Disco 2: Datos ( 100GB) &lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;SO: Windows 8 Server Beta Server con GUI &lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="2" face="Segoe UI Light"&gt;SQL Server 2012 RTM ( instalación de servidor único)&lt;/font&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;A continuación se detalla los pre-requisitos para poder realizar la configuración descrita en este artículo:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Configuración Inicial&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Instalar Windows Server 8 Beta en el servidor 2&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;a href="http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx?ocid=&amp;amp;wt.mc_id=TEC_108_1_33"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Descargar&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt; y realizar la instalación por defecto de Windows Server 8 Beta. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_18_2D00_46_2D00_40_5F00_226F9D75.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Win8SrvBeta-2012-03-15-18-46-40" border="0" alt="Win8SrvBeta-2012-03-15-18-46-40" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_18_2D00_46_2D00_40_5F00_thumb_5F00_71AC6FFC.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Cambiar el nombre del equipo&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Unir el servidor al dominio ( latam.local)&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Iniciar sesión con la cuenta administradora del dominio, en mi caso la cuenta es latam\administrator. &lt;/font&gt;&lt;/span&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Desde la ventana Server Management seleccione Tools&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_19_2D00_16_2D00_28_5F00_6C2DD98B.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-19-16-28" border="0" alt="Win8SrvBeta-2012-03-15-19-16-28" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_19_2D00_16_2D00_28_5F00_thumb_5F00_78F809DC.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la ventana Computer Management seleccione Local Users and Groups, seleccione Groups y en el grupo Administrators agregue las cuentas sqlservice y shrpointservice&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_19_2D00_21_2D00_20_5F00_715C74A2.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-19-21-20" border="0" alt="Win8SrvBeta-2012-03-15-19-21-20" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_19_2D00_21_2D00_20_5F00_thumb_5F00_6C4A1126.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Instalación de SharePoint 2010 con Service Pack 1&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Crear la carpeta Prerequisites en la unidad C&lt;/font&gt;:&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Ejecutar el &lt;/font&gt;&lt;/span&gt;&lt;a href="http://gallery.technet.microsoft.com/SharePoint-2010-and-dee17600"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;script&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt; de instalación de los pre-requisitos, roles/features de SharePoint. Ingrese la ruta c:\prerequisites\&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Nota: reinicie manualmente el servidor luego del paso 1, caso contrario recibirá mensajes de error en el paso 2&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_12_2D00_33_5F00_2C7004D4.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-20-12-33" border="0" alt="Win8SrvBeta-2012-03-15-20-12-33" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_12_2D00_33_5F00_thumb_5F00_47E4E10A.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Instalar SharePoint 2010, existen algunas consideraciones a ser tomadas en cuenta, por favor revise el siguiente &lt;/font&gt;&lt;/span&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/7899.install-sharepoint-2010-on-windows-server-8-beta.aspx"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;blog para mayor información&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;. Nota: Solo instale SharePoint 2010, no ejecute el asistente de configuración, y evite los pasos de instalación de SQL Server 2012. El proceso de configuración de SharePoint lo realizaremos luego de instalar SQL Server 2012 como se indique en este artículo.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Importante las características de powerpivot y power view requiere que su sharepoint sea enterprise&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;        &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Durante el proceso de instalación seleccione Server Farm y luego Complete&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Instalación de SQL Server 2012 Enterprise&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez instalado SharePoint 2010, inserte el disco de instalación de SQL Server 2012 Enterprise&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Seleccione Installation, y luego seleccione New SQL Server stand-alone installation or add features to an existing installation&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_40_2D00_15_5F00_3302C2BD.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-20-40-15" border="0" alt="Win8SrvBeta-2012-03-15-20-40-15" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_40_2D00_15_5F00_thumb_5F00_41118BED.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Selecione OK en la ventana de Setup Support Rules&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_42_2D00_00_5F00_3B26C287.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-20-42-00" border="0" alt="Win8SrvBeta-2012-03-15-20-42-00" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_42_2D00_00_5F00_thumb_5F00_577404A7.png" width="644" height="481" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la sección de Product Key seleccione Next, acepte los términos de licencia. En la ventana de Setup Support Rule valide que todo este con estado Passed&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la sección de Setup Role seleccione SQL Server PowerPivot for SharePoint y verifique que este marcado Add SQL Server Database Relational Engine Services to this installation&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_50_2D00_58_5F00_6A18D891.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-20-50-58" border="0" alt="Win8SrvBeta-2012-03-15-20-50-58" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_20_2D00_50_2D00_58_5F00_thumb_5F00_34536D6A.png" width="641" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la pestaña de Feature selection de clic en Next, al igual que en Installation Rules, si desea en la pestaña de Instance Configuration cambie el nombre de la instancia&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la pestaña de Server Configuration configure para que los servicios de SQL Server ( Database engine y Analysis Services) corran bajo la cuenta de servicio SQLService&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la pestaña de DataBase Engine Configuration cambie si desea el modo de autenticación y agregue los administradores de SQL Server que desee&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la pestaña de Analysis Services Configuration agregue los usuarios que desee que cuenten con privilegios administrativos en SSAS. Continue con el asistente con los valores por defecto&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_21_2D00_08_5F00_1A02DE79.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-21-21-08" border="0" alt="Win8SrvBeta-2012-03-15-21-21-08" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_21_2D00_08_5F00_thumb_5F00_40A144F9.png" width="638" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Configuración de SharePoint 2010&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ejecute el asistente de configuración de SharePoint 2010&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la ventana de Connect to a server farm, seleccione Create a new server farm&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la siguiente pantalla ingrese el nombre de servidor de base de datos, en este caso es DevSrv\PowerPivot, con la cuenta de usuario shrPointService&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_25_2D00_14_5F00_35A41817.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-21-25-14" border="0" alt="Win8SrvBeta-2012-03-15-21-25-14" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_25_2D00_14_5F00_thumb_5F00_136C0C91.png" width="561" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ingrese una passphrase en la siguiente ventana y haga clic en Next&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Si desea cambie los puertos y la autenticación, voy a dejar los valores por defecto. &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la vista de resumen de haga clic en Next&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_58_2D00_12_5F00_49E99208.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-21-58-12" border="0" alt="Win8SrvBeta-2012-03-15-21-58-12" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_21_2D00_58_2D00_12_5F00_thumb_5F00_60C86384.png" width="562" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Al finalizar la configuración, automáticamente se iniciará la herramienta central de administración. Configuramos nuestro servidor utilizando el asistente&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_23_2D00_23_2D00_14_5F00_654E4871.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-23-23-14" border="0" alt="Win8SrvBeta-2012-03-15-23-23-14" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_23_2D00_23_2D00_14_5F00_thumb_5F00_6258E3BE.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Configuramos la cuenta de dominio shrpointservice para todos los servicios&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_23_2D00_23_2D00_48_5F00_737C9B94.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-15-23-23-48" border="0" alt="Win8SrvBeta-2012-03-15-23-23-48" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_15_2D00_23_2D00_23_2D00_48_5F00_thumb_5F00_33EF3844.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Creamos nuestro sitio de inteligencia de negocios&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_11_2D00_13_5F00_23471789.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-00-11-13" border="0" alt="Win8SrvBeta-2012-03-16-00-11-13" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_11_2D00_13_5F00_thumb_5F00_7F5E402E.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Configurar PowerPivot con la Herramienta PowerPivot Configuration Tool&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ejecutar la herramienta PowerPivot Configuration Tool&lt;/font&gt;.&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ingresar las contraseñas de las cuentas de servicio y passphrase&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_28_2D00_08_5F00_19FAB67B.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-00-28-08" border="0" alt="Win8SrvBeta-2012-03-16-00-28-08" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_28_2D00_08_5F00_thumb_5F00_273119C1.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Validar y ejecutar la herramienta&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_28_2D00_19_5F00_2503F52B.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-00-28-19" border="0" alt="Win8SrvBeta-2012-03-16-00-28-19" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_00_2D00_28_2D00_19_5F00_thumb_5F00_4078D161.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh231684(v=sql.110).aspx"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Verifique la instalación de PowerPivot&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Instalar SQL Server Reporting Services en Modo Integrado con SharePoint&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Instale Reporting Services siguiendo los pasos de &lt;/font&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg492276(v=sql.110).aspx"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;MSDN&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Finalmente active las características de Reporting Services y Power View en la página de administración de features de la colección de sitios&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_40_2D00_54_5F00_1855FC75.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-13-40-54" border="0" alt="Win8SrvBeta-2012-03-16-13-40-54" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_40_2D00_54_5F00_thumb_5F00_5A98EEEB.png" width="644" height="484" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Configurar Sitio de Sharepoint para el contenido de Power View&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En esta sección crearemos una librería a nuestro sitio llamada reports donde podremos agregar todos nuestros modelos semánticos de BI ( necesario para reportes Power View), Data Sources de Reporting services y también los reportes.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Crear la librería Site Actions –&amp;gt; New Document Library. Ingresamos el nombre de la librería “Reports” en document Template seleccionamos None y Create&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_54_2D00_56_5F00_0156DF5F.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-13-54-56" border="0" alt="Win8SrvBeta-2012-03-16-13-54-56" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_54_2D00_56_5F00_thumb_5F00_1DA4217F.png" width="644" height="454" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez creada la librería vamos a Library Settings, seleccionamos Advance Settings, y habilitamos Allow management of content types&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_55_2D00_40_5F00_2B46B7BA.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-13-55-40" border="0" alt="Win8SrvBeta-2012-03-16-13-55-40" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_55_2D00_40_5F00_thumb_5F00_4EB33652.png" width="644" height="458" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;En la sección de Content Types seleccionamos add from existing site content types&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_58_2D00_22_5F00_226689A1.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-13-58-22" border="0" alt="Win8SrvBeta-2012-03-16-13-58-22" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_58_2D00_22_5F00_thumb_5F00_1132ABFE.png" width="644" height="338" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Agregamos BI Semantic model connection, Report Builder Model, Report Builder Report, Report data Source&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_58_2D00_22_5F00_13ABB7EF.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-13-58-22" border="0" alt="Win8SrvBeta-2012-03-16-13-58-22" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_13_2D00_58_2D00_22_5F00_thumb_5F00_6C24C5B7.png" width="644" height="338" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Prueba inicial de Power View&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Para este paso bajamos desde &lt;/font&gt;&lt;/span&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/3735.sql-server-samples-readme.aspx"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;msdn&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt; el ejemplo HelloWorldPicnic y sus imágenes.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Instale Excel 2010 SP1 y &lt;/font&gt;&lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=4b5d8276-d8c8-49b3-a653-f09f744ed9c5"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;SQL Server 2012 PowerPivot para Excel 2010&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-family:segoe ui light;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;Cargar los archivos como lo indica la siguiente &lt;/font&gt;&lt;/span&gt;&lt;a href="http://technet.microsoft.com/en-us/library/hh759325(v=sql.110).aspx"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;guía&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;. Nota: en el connection string debe agregar data source=http://&amp;lt;myserver&amp;gt;/Shared%20Documents/HelloWorldPicnicSample/HelloWorldPicnicPowerView.xlsx.&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Antes de empezar a crear su primer reporte, descargue e instale Silverlight 4.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_19_2D00_16_2D00_15_5F00_20957233.png"&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-19-16-15" border="0" alt="Win8SrvBeta-2012-03-16-19-16-15" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_19_2D00_16_2D00_15_5F00_thumb_5F00_08425818.png" width="644" height="453" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez creado el data source al archivo de excel, puede desplegar las opciones sobre el elemento y crear un reporte Power view&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_14_2D00_10_5F00_4AF17D83.png"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-20-14-10" border="0" alt="Win8SrvBeta-2012-03-16-20-14-10" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_14_2D00_10_5F00_thumb_5F00_673EBFA3.png" width="644" height="304" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;font size="2"&gt;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Ahora pueden crear su repote utilizando el diseñador. Nota: para que un usuario pueda crear sus reportes debe tener los permisos de colaboración en la librería de reportes&lt;/font&gt;.&lt;/span&gt; &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_27_2D00_09_5F00_1085E1D5.png"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-20-27-09" border="0" alt="Win8SrvBeta-2012-03-16-20-27-09" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_27_2D00_09_5F00_thumb_5F00_0598DAC0.png" width="644" height="460" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;Una vez finalizado su reporte lo pueden guardar en la librería o exportarlo a PowerPoint.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_37_2D00_39_5F00_0811E6B1.png"&gt;&lt;span style="font-family:segoe ui light;font-size:x-small;"&gt;&lt;font size="2"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Win8SrvBeta-2012-03-16-20-37-39" border="0" alt="Win8SrvBeta-2012-03-16-20-37-39" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Win8SrvBeta_2D00_2012_2D00_03_2D00_16_2D00_20_2D00_37_2D00_39_5F00_thumb_5F00_2386C2E7.png" width="644" height="451" /&gt;&lt;/font&gt;&lt;/span&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=203886" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/17/sql2012-instalando-power-view-2012.aspx</link>
      <pubDate>Sat, 17 Mar 2012 01:49:00 GMT</pubDate>
    </item>
    <item>
      <title>La responsabilidad del trabajo</title>
      <description>&lt;p&gt;&lt;img src="http://2.bp.blogspot.com/_4yBzf6Q29tc/TTVmC0pfR7I/AAAAAAAAB9g/6qydgNlUiKc/s1600/efecto_domino.jpg" width="329" height="209" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;No voy a descubrir nada si afirmo que seguimos en crisis y que muy a mi pesar, me temo que seguiremos así aún durante un tiempo.&lt;/p&gt;  &lt;p&gt;Cada vez veo más tiendas cerradas en mi barrio de Madrid, un lugar céntrico, dónde había tenderos de los que denominaríamos &amp;quot;de toda la vida&amp;quot;, y que ahogados por la acuciante crisis, se ven obligados a reducir el personal de sus pequeñas tiendas, o incluso a cerrar sus negocios.&lt;/p&gt;  &lt;p&gt;Lo que empieza siendo una crisis de algún sector concreto, termina convirtiéndose en un barrido de fichas de dominó, y ahora prácticamente no hay profesión que se libre de la crisis.&lt;/p&gt;  &lt;p&gt;Pese a todo ello, la profesión de informática y concretamente de desarrollo del Software es de las menos golpeadas de la crisis. Sin embargo y aprovechando la crisis, las empresas han tirado por los suelos los sueldos.&lt;/p&gt;  &lt;p&gt;No hace falta que cuente mucho más al respecto por aquí respecto a este último tema, basta con darse una vuelta por alguno de esos portales de empleo para darse cuenta uno mismo de lo que hablo. Varios idiomas, experiencia abundante, conocimientos extensos e incluso con perfiles altos, y trabajando como si uno tuviera un perfil &amp;quot;normal&amp;quot; y por un sueldo por debajo de las expectativas iniciales que una persona con cierta experiencia profesional ya podría entender como lógico.&lt;/p&gt;  &lt;p&gt;El caso es que que nos vengan a estas alturas pidiendo esfuerzos a los informáticos y a los desarrolladores del Software suena a chufla, ya que llevamos años (al menos en España) sufriendo no solo recortes salariales y estancamiento en los sueldos, sino ajustándonos los cinturones, e incluso cuando las cosas les iban bien a muchos.&lt;/p&gt;  &lt;p&gt;No obstante y con la que está cayendo alrededor nuestra, y pese a todo esto que comento, podemos considerarnos unos auténticos privilegiados. Yo al menos, me considero así.&lt;/p&gt;  &lt;p&gt;Aún y así, ese privilegio alimenta aún más mi exigencia personal (y no hablo de aspectos económicos), sobre todo cuando levanto la cabeza del teclado y echo una rápida mirada alrededor mía.&lt;/p&gt;  &lt;p&gt;Ya que tengo la posibilidad de trabajar, quiero hacerlo desde la responsabilidad de quien espera y confía poner su granito de arena para intentar que otros salgan del agujero en el que están metidos, y sabedor de que si esos salen, mi situación mejorará de forma indirecta.&lt;/p&gt;  &lt;p&gt;Quiero pensar &amp;quot;egoístamente&amp;quot; que mi esfuerzo vale la pena, que mi implicación, persistencia, tesón y responsabilidad, ayudarán a que la situación económica y social mejore.&lt;/p&gt;  &lt;p&gt;Lo que no tengo tan claro es si cuando las cosas mejoren, se acordarán de los sueldos de los informático o si éstos seguirán anclados como lo han estado durante bastantes años.&lt;/p&gt;  &lt;p&gt;Sí, muchas veces pienso que quizás sea además de idealista, un inocente.&lt;/p&gt;  &lt;p&gt;Pero creo honestamente, que de esta crisis se saldrá cuando dejemos de pensar egoístamente en nosotros mismos y nuestros problemas, y traslademos esa reflexión a un plano más amplio... comprendiendo que si al vecino le va bien, a uno mismo le irá bien también, y entendiendo así que los problemas de todos son nuestros problemas aunque no estemos afectados directamente por ellos.&lt;/p&gt;  &lt;p&gt;Lo importante para mí de todo esto es que cuando veo a alguien cercano a mí que se queda en paro o que pasa por problemas económicos, más ganas y fuerzas me da para poner más empeño en todo lo que hago.&lt;/p&gt;  &lt;p&gt;Espero haber trasladado algo de optimismo y sentido al ambiente que nos rodea, y deseo que todos seamos conscientes de los privilegiados que somos y de la responsabilidad que tenemos, y sobre todo, de que cada uno por su cuenta no hará nada, y entre todos sí.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Para finalizar, me gustaría contar un par de moralejas sobre el valor de los seres humanos y sobre la implicación que puede tener el trabajo y la responsabilidad.&lt;/p&gt;  &lt;p&gt;La primera de ellas dice algo así:&lt;/p&gt;  &lt;p&gt;En una conferencia, el ponente mostró un billete de 100 dólares y preguntó:   &lt;br /&gt;- ¿Quién quiere este billete ?    &lt;br /&gt;Varias manos se levantaron, pero el ponente volvió a preguntar:    &lt;br /&gt;- Antes de dárselo a alguien, debo hacer aún algo con el billete.    &lt;br /&gt;Lo arrugó con sus manos una y otra vez, y volvió a preguntas:    &lt;br /&gt;- ¿Quién sigue queriendo este billete?    &lt;br /&gt;Las mismas manos seguían alzadas. Ante esa imagen, volvió a comentar:    &lt;br /&gt;- ¿Y si hiciera esto? (lo tiró contra la pared, lo dejó caer al suelo, lo pisoteó como a una colilla y, una vez más, mostró el billete, aunque ahora estaba bastante sucio y arrugado).    &lt;br /&gt;Repitió la pregunta una vez más y ninguna mano se bajó.    &lt;br /&gt;El ponente dijo entonces:    &lt;br /&gt;- No olviden nunca esta escena. Haga lo que haga con este billete de 100 dólares, continúa siendo un billete de 100 dólares. A menudo en la vida nos arrugan, nos pisan, nos maltratan, nos injurian; sin embargo, a pesar de ello, siempre seguimos valiendo lo mismo.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;La segunda se expresa más o menos de esta forma (aunque la practicidad y veracidad completa de esta última es más que discutible, pero me quedo con el fondo del asunto):&lt;/p&gt;  &lt;p&gt;Nos encontramos en primavera, antes de verano.   &lt;br /&gt;Una pequeña población de las que en invierno suelen quedar desiertas, pero que en verano triplica su población. Sin embargo, la crisis ha golpeado con dureza el municipio, y aunque el verano está cerca, las deudas ahogan a sus habitantes.    &lt;br /&gt;Para colmo y dada la época del año, llueve torrencialmente desde hace varios días, y la ciudad apenas recibe turistas.     &lt;br /&gt;Por fortuna, llega un turista bastante bien trajeado y entra en el único pero cuidado hotel de la población.    &lt;br /&gt;El recepcionista le indica que tiene todas las habitaciones libres y que puede elegir la que desee.    &lt;br /&gt;Pone un billete de 100€ en la mesa del recepcionista, pide una habitación y se va a ver las habitaciones.     &lt;br /&gt;Mientras tanto, el recepcionista del hotel que es a su vez el único dueño del mismo, coge el billete y sale corriendo a pagar sus deudas con el carnicero.    &lt;br /&gt;El carnicero, coge el billete y sale pitando a pagar sus deudas con el criador de cerdos.     &lt;br /&gt;El criador de cerdos por su parte, sale como alma que lleva el diablo y paga al proveedor de pienso para animales.     &lt;br /&gt;El del pienso coge el billete al vuelo y corre a liquidar su deuda con la prostituta a la que hace tiempo que no paga (en tiempos de crisis, hasta ella ofrece servicios a crédito).    &lt;br /&gt;La prostituta coge el billete y sale para el pequeño hotel donde había traído a sus clientes las últimas veces y que todavía no había pagado entregando el billete de 100€ al dueño del hotel y liquidando así sus deudas.     &lt;br /&gt;En ese mismo instante deja de llover y aparece el turista, quién le indica al recepcionista y dueño del hotel que aprovechando que ha dejado de llover va a seguir su camino por la carretera, por lo que el dueño del hotel le devuelve sus 100 €.    &lt;br /&gt;Nadie ha ganado un duro, pero ahora toda la ciudad vive sin deudas y mira el futuro con confianza.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203842" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/03/15/la-responsabilidad-del-trabajo.aspx</link>
      <pubDate>Thu, 15 Mar 2012 17:30:00 GMT</pubDate>
    </item>
    <item>
      <title>Windows Phone :: Publicada la aplicación Marketplace Rate v1.0</title>
      <description>&lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Quería aprovechar esta entrada para mostraros la versión 1.0 de una aplicación gratuita para Windows Phone que he publicado recientemente en el Marketplace de Microsoft.&lt;/p&gt;  &lt;p&gt;El nombre de esta aplicación es Marketplace Rate y está disponible tanto en inglés como en español.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Para qué sirve?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Se trata de una aplicación con la que podremos acceder al Marketplace de Microsoft para obtener información de una determinada aplicación.&lt;/p&gt;  &lt;p&gt;El problema de los desarrolladores es que la forma de analizar y evaluar la aceptación de nuestras aplicaciones, así como acceder a los comentarios de los usuarios sobre nuestras aplicaciones, resulta demasiado farragoso y nos obliga a acudir a la página Web oficial del Marketplace y realizar tareas manuales bastante pesadas.&lt;/p&gt;  &lt;p&gt;La idea detrás de esta aplicación es la de crear una herramienta que nos permita acceder de forma rápida y eficaz, a los comentarios que los usuarios hacen sobre nuestras aplicaciones así como a la cantidad de votos y votación media de la misma, con el hándicap de que no sólo podremos ver los votos y comentarios que se han realizado sobre nuestra aplicación en una determinada región como ocurre con la Web oficial del Marketplace de Microsoft, sino que podremos acceder de una vez y en una única pantalla a todos los comentarios que han hecho los usuarios en todas las partes del mundo de forma directa y rápida.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Algunas capturas de pantalla de la aplicación&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A continuación, os pongo algunas capturas de pantalla de la aplicación:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pUs0OwsOEe49gxoDRojxP0zJJpNkKnzOp-xxRmX2WjRI7L-I3JUKOgySRt403GJw86ONjhZNXH7C6KydVa8367A/20120313_01.png?psid=1" width="240" height="400" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1peePY4__GyjbwkK9UNVnFm5tii_Pr3zDx8K4F0IpGKG7x9gQa8kgM_67imXm4-r3KCDTIGVaBilQ0pPDPKaNXZA/20120313_02.png?psid=1" width="240" height="400" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pF4-U80tSewcX70JiRnlvwOJwVJypav-eldPQe6AOausSEYLFYG5ijYQKJuotqierH1BAl2yajm0ZaYQ32yU2ZA/20120313_03.png?psid=1" width="240" height="400" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pbhAd7PVLbxBqOI2EmCHihW52CHzilpB6zZTZ7ShNCMwRtoUMVQFd1mNfzUdFGNbxJj6me6ufRctG0FVMiygQlg/20120313_04.png?psid=1" width="240" height="400" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Futuras versiones de Marketplace Rate&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ni que decir, que ya estoy trabajando en una segunda versión de esta aplicación que contendrá nuevas características y mejoras, algunas de ellas de acuerdo a los cambios que va a sufrir el Marketplace en las próximas semanas o meses.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Video demostrativo&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A continuación, os indico un video que he colgado en YouTube para mostrar el uso y funcionamiento de la aplicación.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:351268fe-6698-40b3-a4f6-a50b8a583755" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5zJ5XaJ_vVk" target="_new"&gt;&lt;img src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jorge/videodfe0dd6b40a2_5F00_078C5D9A.jpg" style="border-style:none;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em;"&gt;Video sobre la aplicación Marketplace Rate v1.0&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Confío en que os resulte de utilidad.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203817" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/03/13/windows-phone-publicada-la-aplicaci-243-n-marketplace-rate-v1-0.aspx</link>
      <pubDate>Tue, 13 Mar 2012 07:30:00 GMT</pubDate>
    </item>
    <item>
      <title>[Windows 8 Consumer Preview]–Disponible para Descarga y Tip para upgrade de Windows 7</title>
      <description>&lt;p&gt;&lt;font size="3" face="Segoe UI Light"&gt;Un nuevo release de &lt;a href="http://windows.microsoft.com/es-ES/windows-8/consumer-preview"&gt;Windows 8&lt;/a&gt; se encuentra disponible para &lt;a href="http://windows.microsoft.com/es-ES/windows-8/download"&gt;descarga&lt;/a&gt;, lo acabo de instalar en mi &lt;a href="http://www.samsung.com/us/business/tablet-pcs/XE700T1A-A05US"&gt;samsung slate&lt;/a&gt;, luego de probar algunas opciones de instalación como: instalación limpia ( muy natural y sin problemas, algunos drivers aún no están listos como el del acelerómetro), y upgrade, este último al tratar de actualizar el sistema operativo de la slate ( windows 7 professional) manteniendo mi perfil y mis aplicaciones el equipo se reiniciaba avanzaba hasta el 10% de progreso, luego se reiniciaba nuevamente y restauraba a mi sistema original presentandome el siguiente mensaje de error “We are not sure what happened, but couldn&amp;#39;t finish installing windows 8 Consumer Preview. We&amp;#39;ve set your PC back to the way it was right before you started.”, luego de revisar el siguiente &lt;a href="http://blogs.technet.com/b/asiasupp/archive/2012/03/06/error-we-are-not-sure-what-happened-but-couldn-t-finish-installing-windows-8-consumer-preview-we-ve-set-your-pc-back-to-the-way-it-was-right-before-you-started-when-you-try-to-install-windows-8-cp.aspx"&gt;post&lt;/a&gt; ejecute el setup ubicado dentro de la carpeta source y voalá ahora mi samsung slate tiene windows 8 manteniendo mis aplicaciones.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/WP_5F00_000267_5F00_78B4CBFD.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="WP_000267" border="0" alt="WP_000267" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/WP_5F00_000267_5F00_thumb_5F00_06E31F21.jpg" width="596" height="448" /&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=203815" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/13/windows-8-consumer-preview-disponible-para-descarga-y-tip-para-upgrade-de-windows-7.aspx</link>
      <pubDate>Tue, 13 Mar 2012 05:13:57 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] Visual Studio 11 Architecture Tooling Guidance BETA Disponible</title>
      <description>&lt;p&gt;&lt;font size="3" face="Segoe UI Light"&gt;En &lt;/font&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/10/20/vs-alm-rangers-visual-studio-11-architecture-tooling-guidance.aspx"&gt;&lt;font size="3" face="Segoe UI Light"&gt;Octubre&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Segoe UI Light"&gt; anuncie el inicio formal de este proyecto como parte del proceso de actualización de las guías de los Rangers para la nueva versión de Visual Studio, para mí es muy grato comunicarles que se ha &lt;/font&gt;&lt;a href="http://vsararchitectguide.codeplex.com/"&gt;&lt;font size="3" face="Segoe UI Light"&gt;liberado la versión Beta de esta guía.&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://vsararchitectguide.codeplex.com/"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Rangers_ArchToolBeta" border="0" alt="Rangers_ArchToolBeta" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Rangers_5F00_ArchToolBeta_5F00_7465DC95.png" width="644" height="364" /&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=203813" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/13/vs-alm-rangers-visual-studio-11-architecture-tooling-guidance-beta-disponible.aspx</link>
      <pubDate>Tue, 13 Mar 2012 04:54:43 GMT</pubDate>
    </item>
    <item>
      <title>[VS 11– Antes Dev 11]–Bienvenida a los Betas de Visual Studio 11</title>
      <description>&lt;p&gt;&lt;font size="3" face="Segoe UI Light"&gt;     &lt;table border="0" cellspacing="0" cellpadding="2" width="952"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="200"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta1_5F00_6F6FF4C9.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="VS11Beta1" border="0" alt="VS11Beta1" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS11Beta1_5F00_thumb_5F00_294F11E9.png" width="244" height="206" /&gt;&lt;/a&gt;&lt;/td&gt;            &lt;td valign="top" width="750"&gt;Mientras me encontraba en el MVP Summit 2012 en sesiones y reuniones con grandes amigos Microsoft anunciaba un nuevo hito de &lt;a href="http://www.microsoft.com/visualstudio/11/en-us/downloads"&gt;Visual Studio 11&lt;/a&gt;, además de su nuevo metro style al igual que Windows 8 y Windows phone, una buena noticia para quienes no pueden esperar para empezar a crear aplicaciones para ambientes de test y producción es el soporte &lt;a href="http://www.microsoft.com/visualstudio/11/en-us/downloads/go-live"&gt;Go Live&lt;/a&gt;.              &lt;br /&gt;              &lt;br /&gt;Espero lo disfruten!!!&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Go Live with Visual Studio 11 Beta and .NET Framework 4.5 Beta&lt;/h4&gt;  &lt;p&gt;Visual Studio 11 Beta and .NET Framework 4.5 Beta meet our high standards for pre-release software, so we support application design, development, test, and deployment in test &lt;i&gt;and production&lt;/i&gt; environments. Before putting an application into production, you must review and comply with the INSTALLATION, USE RIGHTS AND RESTRICTIONS section of the Microsoft Visual Studio 11 Product Family Beta Software licensing agreement. This section describes your rights for internal and external production use. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203812" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2012/03/13/vs-11-antes-dev-11-bienvenida-a-los-betas-de-visual-studio-11.aspx</link>
      <pubDate>Tue, 13 Mar 2012 04:42:25 GMT</pubDate>
    </item>
    <item>
      <title>Shortcuts de teclado para aplicaciones Windows</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/03/02/shortcuts-de-teclado-para-aplicaciones-windows.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;En Windows, y aún en la experiencia Desktop de Windows 8, podemos asignar shortcuts de teclado a las aplicaciones que más usamos o que más nos convienen, para poderlas activar desde el teclado sin necesidad de buscarlas o hacer click en su ícono.&lt;/p&gt;      &lt;p&gt;En este corto video, muestro como.&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;      &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/JvitQM3EcBI" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10276668" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/03/02/shortcuts-de-teclado-para-aplicaciones-windows.aspx</link>
      <pubDate>Fri, 02 Mar 2012 19:47:32 GMT</pubDate>
    </item>
    <item>
      <title>Publicado Windows Phone SDK 7.1.1 CTP – NO GO LIVE</title>
      <description>&lt;p&gt;&lt;img src="http://pocketnow.com/html/portal/news/0000019217//Windows_Phone_New_Logo2.jpg" width="232" height="135" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Introducción&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Microsoft ha lanzado en este mes de Febrero que ahora finaliza una actualización de Microsoft Windows Phone SDK (aún en versión preliminar, CTP).&lt;/p&gt;  &lt;p&gt;Concretamente, lo que se denomina como &lt;em&gt;&lt;u&gt;Windows Phone SDK 7.1.1 CTP&lt;/u&gt;&lt;/em&gt; que corresponde con la versión denominada como &lt;em&gt;Windows Phone Tango&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;El porqué de esta actualización&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El motivo principal del &amp;quot;porqué&amp;quot; de esta actualización, se debe fundamentalmente a que varios fabricantes llevaban varios meses desarrollando teléfonos móviles dotados de Windows Phone y de low-cost.&lt;/p&gt;  &lt;p&gt;En concreto, tenemos dos fabricantes que se han aventurado a mostrar estos nuevos terminales, algo que ha sucedido en el MWC (Mobile World Congress) 2012 que se está celebrando en Barcelona (España).&lt;/p&gt;  &lt;p&gt;En concreto, Nokia ha presentado (además de varias novedades) un dispositivo móvil de nombre Nokia Lumia 610.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pMWFzJjSrpFMXs0yju68eS3mU8vi4oA1rJbSYKSR6o5p_0__TsaIV4_SWMIhnOG4IrVLc9b__s1HduRA5P6B5mA/20120229_01.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Por su parte, el fabricante chino ZTE ha presentado su nuevo dispositivo móvil ZTE Orbit.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pn7XP3hPfB6uq321ufdt5lTWFoGJV-kQa-maUREtR2bDQ-z48HU8ciy_QgM8uljPiwqzribL1wdgVYvcnCyUh-g/20120229_02.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;Ambos dispositivos tienen un precio inferior a 200 € y sus características técnicas son menos exigentes que la de sus hermanos mayores. Concretamente, disponen de 256 Mb de memoria RAM en lugar de las 512 Mb que suelen tener el resto de terminales, y soporte para procesadores Qualcomm 7x27a de menor velocidad (800 MHz en lugar de 1 GHz de los modelos superiores).&lt;/p&gt;  &lt;p&gt;Esto significa que aunque podamos instalar cualquier aplicación de Windows Phone del Marketplace en estos dispositivos, es posible que encontremos algún problema de rendimiento.&lt;/p&gt;  &lt;p&gt;El problema más directo es en la asignación de memoria. Con terminales dotados de 256 Mb, la asignación de memoria cambia, y eso afecta o puede llegar a afectar de forma muy directa con nuestras aplicaciones.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Y cómo resolver esto?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es por eso que Microsoft ha decidido publicar Windows Phone SDK 7.1.1, una actualización de su SDK que permita detectar cuando nos encontramos ante una aplicación que se ejecuta en terminales de bajo coste y cuando no, para que en base a ello, prepararemos nuestras aplicaciones de forma adecuada.&lt;/p&gt;  &lt;p&gt;La nueva versión preliminar de Windows Phone SDK 7.1.1 nos permitirá empezar a desarrollar nuestras aplicaciones con estas características.&lt;/p&gt;  &lt;p&gt;¡Ojo!, Windows Phone SDK 7.1.1 no se trata de una versión definitiva, y no dispone de licencia GO LIVE. Esto significa que se trata de una versión preliminar de pruebas, y NO podremos publicar aplicaciones desarrolladas con esta versión en el Marketplace. Es fácil pensar que poco cambio habrá seguramente con la versión definitiva, por lo que podremos ir ya poniéndonos manos a la obra con esta nueva versión de desarrollo.&lt;/p&gt;  &lt;p&gt;Adicionalmente a todo lo comentado hasta ahora, el SDK trae una modificación al emulador existente y es la de poder elegir entre un emulador de 512 Mb (el tradicional hasta esta nueva versión) y un nuevo emulador de 256 Mb que nos permitirá trabajar con algunas de las restricciones planteadas.&lt;/p&gt;  &lt;p&gt;A la hora de desarrollar nuestras aplicaciones, podemos limitar el despliegue de las mismas en dispositivos de bajo consumo utilizando el valor ID_REQ_MEMORY_90 en los requisitos que encontraremos en el archivo WMAppManifest.xml (ver documentación oficial para más detalles).&lt;/p&gt;  &lt;p&gt;De cara a la gestión de recursos dependiendo del tipo de aplicación, el SDK incluye un nuevo valor de nombre ApplicationWorkingSetLimit en el namespace Microsoft.Phone.Info (Microsoft.Phone.dll) y que puede ser invocado a través de DeviceExtendedProperties.GetValue(ApplicationWorkingSetLimit). De esta manera, podremos capturar la cantidad de memoria del dispositivo (menos de 90 MB = 94371840 para dispositivos de 256 Mb) para de esta forma, saber qué tipo de dispositivo es el que invoca nuestra aplicación y actuar de acuerdo a nuestras necesidades.&lt;/p&gt;  &lt;p&gt;Otra novedad del nuevo SDK es que el control de anuncios está ahora incorporado al SDK.&lt;/p&gt;  &lt;p&gt;Aún y así, conviene ser prudentes con estas novedades para ver si algunas de ellas sufren finalmente algún cambio o transformación.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Diferencias entre versiones&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;En esta pequeña tabla, se resumen aquellas características más destacables entre un Windows Phone de 256 Mb y un Windows Phone de 512 Mb desde el punto de vista técnico.&lt;/p&gt;  &lt;p&gt;&lt;img src="https://public.blu.livefilestore.com/y1pMWFzJjSrpFOUNjJofVXFHrfen_t1YtSjtqbqf_I1i_rkd25XLWPKgsPcsrgD3mr7HfnQoviUtIATeqE_3UQAPQ/20120229_03.png?psid=1" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;De acuerdo a esta pequeña tabla, vemos que la recomendación de Microsoft es la de ejecutar en terminales de 256 Mb aplicaciones de menos de 90 Mb necesarias de asignación de memoria.&lt;/p&gt;  &lt;p&gt;Incluso, Microsoft va más allá, y recomienda que sea incluso menos o igual de 60 Mb, ya que a partir de esa cantidad, la paginación afectará directa y estrechamente a la ejecución de nuestras aplicaciones y por lo tanto al rendimiento y a la experiencia de usuario.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;¿Para cuando la versión final?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Según App Hub, la versión final de Windows Phone SDK 7.1.1 estará disponible el próximo mes, y contendrá soporte para Malayo e Indonesio tal y como se puede extraer &lt;a href="http://create.msdn.com/en-US/news/windows-phone-sdk-7-1-1-tech-preview"&gt;de lo que ellos comentan&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Junto a esta actualización, el Marketplace sufrirá una expansión. Expansión que implica a 23 nuevos mercados adicionales: Bahrain, Bulgaria, China, Costa Rica, Croatia, Estonia, Iceland, Iraq, Israel, Kazakhstan, Latvia, Lithuania, Qatar, Romania, Saudi Arabia, Slovakia, Slovenia, Thailand, Turkey, UAE, Ukraine, Venezuela y Vietnam. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Enlaces&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Acceso a la página Web oficial de &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=28962"&gt;descarga de Windows Phone SDK 7.1.1 (versión preliminar NO GO LIVE)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Información con las &lt;a href="http://msdn.microsoft.com/en-us/library/hh855084(v=vs.92).aspx"&gt;novedades de Windows Phone SDK 7.1.1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Información de Microsoft para el &lt;a href="http://msdn.microsoft.com/library/hh855081(v=vs.92).aspx"&gt;desarrollo de aplicaciones para dispositivos de 256 Mb&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Blog de Aaron Stebner &lt;a href="http://blogs.msdn.com/b/astebner/archive/2012/02/27/10273543.aspx"&gt;http://blogs.msdn.com/b/astebner/archive/2012/02/27/10273543.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.developer.nokia.com/Community/Wiki/Best_practices_for_delivering_apps_to_256_MB"&gt;Trucos de Nokia para el desarrollo de aplicaciones de Windows Phone para terminales de 256 Mb&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=203580" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/jorge/archive/2012/02/29/publicado-windows-phone-sdk-7-1-1-ctp-no-go-live.aspx</link>
      <pubDate>Wed, 29 Feb 2012 13:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Divide y Vencerás (Windows Azure)</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/26/divide-y-vencer-225-s-windows-azure.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Suponga que Ud. ha creado el siguiente Facebook… o twitter&lt;/p&gt;      &lt;p&gt;Millones de usuarios acudirán a sus servicios.&lt;/p&gt;      &lt;p&gt;Sé que a estas alturas la respuesta a la siguiente pregunta es sencilla para muchos, pero para los que están empezando hasta ahora, es mejor clarificarla y ese es el motivo de este post:&lt;/p&gt;      &lt;p&gt;Es mejor tener un servidor gigante, poderoso y costoso? O un montón de unidades de cómputo baratas?&lt;/p&gt;      &lt;p&gt;La respuesta la copio de un twitt que puse (ligeramente extendido)        &lt;br /&gt;&lt;i&gt;La instancia cara pero poderosa, llegará a un límite en el que no puede aceptar más ram o cpus; en este momento, el mega servicio que nos inventamos, ya no podrá soportar más usuarios; además qué pasa si se cae? No tendríamos cómo respaldarla y el servicio dejaría de funcionar.&lt;/i&gt;&lt;/p&gt;      &lt;p&gt;Aunque esto hoy día parece muy evidente, back in 1995, ni siquiera grandes empresas tecnológicas como Amazon lo tenían muy en cuenta. Ellos comenzaron con su sistema como un gran silo de software/hardware para su gigantesco sitio de ventas online. Pero ya en 2002, viendo todas las posibilidades que se venían en el futuro y sabiendo que un acercamiento monolítico haría muy difícil a sus sistemas crecer, implementar más funcionalidades y sobretodo soportar más usuarios, el CEO de Amazon, el señor Bezos, toma la decisión de reorientar todo el sistema a un modelo en el que se pudieran tener muchos componentes de software independientes que también pudieran funcionar en unidades o instancias de hardware independiente. Básicamente, a todos los desarrolladores se les dieron estas estrictas normas para trabajar:&lt;/p&gt;      &lt;p&gt;1. Todos los equipos deberán exponer los datos y las funcionalidades a través de interfaces de servicios.&lt;/p&gt;      &lt;p&gt;2. Los equipos se deben comunicar entre sí a través de estas interfaces.&lt;/p&gt;      &lt;p&gt;3. No habrá otra forma de comunicación aceptada.&lt;/p&gt;      &lt;p&gt;4. Sin importar qué tecnología usen, estas reglas se deben cumplir. A Bezos no le interesa.&lt;/p&gt;      &lt;p&gt;5. Todas las interfaces sin excepción, deben ser diseñadas pensando en ser expuestas al resto del mundo... Sin excepción!&lt;/p&gt;      &lt;p&gt;6. Cualquiera que no haga esto, será despedido&lt;/p&gt;      &lt;p&gt;7. Gracias, y tengan un buen día&lt;/p&gt;      &lt;p&gt;&lt;img style="display: inline; float: left" align="left" src="http://photographyofgrace.com/3dTextures/PNGFiles/PNG/CornSilo.png" width="147" height="385" /&gt;         &lt;br /&gt;Algo parecido sucedió con Facebook, en 2007, tres años después de ser fundada. En contraste, curiosamente Google+ que es de 2011, salió al aire sin una sola API. Tres meses después lanzaron solo una gran MEGA API que muestra todo lo que un usuario ve. Lo que la sigue mostrando como un Silo.&lt;/p&gt;      &lt;p&gt;En fin… esos componentes de los que nos habla el señor Bezos, son los que hoy conocemos como servicios, y esa arquitectura es la que conocemos como SOA y es la que ha dado origen a conceptos como Infraestructura como Servicio (IaaS), Plataforma como Servicio (PaaS), Software as a Service (SaaS) y Cloud Computing.&lt;/p&gt;      &lt;p&gt;Una vez logramos que nuestras aplicaciones no sean silos complicados de administrar y extender, tanto para tener más funcionalidades como para soportar más usuarios, empezamos a observar que necesitamos hardware adecuado para soportar estas instancias. Un hardware monolítico de ninguna manera podría aprovechar un software diseñado para poder crecer y ser cada vez mejor.&lt;/p&gt;      &lt;p&gt;Así nace el concepto de IaaS que permite a los usuarios tener disponibles un montón de máquinas en internet para que en ellas pongamos los OS que necesitemos y encima de ellos nuestras aplicaciones. Esto se comenzó a conocer como la nube. Lo bueno, es que son máquinas arrendadas y solo nos cobran lo que consumimos. Además podemos instalar lo que queramos. Lo malo, es que como hay que poner sistemas operativos y demás, son difíciles y costosas de administrar. Amazon es uno de los pioneros y grandes proveedores de IaaS.&lt;/p&gt;      &lt;p&gt;Uno como desarrollador soñaría mejor en tener cientos de miles de máquinas en la nube listas para nuestra mega aplicación, sin necesidad de preocuparnos del sistema operativo ni mantenimiento ni nada de eso. Y es allí donde nace PaaS. Windows Azure de Microsoft, es uno de los pioneros y grandes proveedores de PaaS. Obviamente el software que ponemos sobre Plataforma como servicio, en general se presenta como Software como Servicio (SaaS) dado que los costos de arrendamiento se trasladan a los usuarios finales quienes por ejemplo comienzan a pagar una mensualidad por los servicios del software que se prestan. Como se ve, el viejo esquema de licenciamiento se ve modificado, erradicando problemas de distribución, empaquetado, solución de errores, mantenimiento, etc. Además garantizando la posibilidad de atender a tantos usuarios como vayan llegando, siendo un servicio escalable y robusto.&lt;/p&gt;      &lt;p&gt;Esto lo notó Amazon y hoy también está implementando su propuesta de PaaS junto a muchos otros proveedores. Pero también resulta cierto que a veces, de acuerdo a la complejidad de la aplicación generada, se hace necesario poder administrar el sistema operativo sobre el cual corre, así sea esto más costoso. Es por esto, que Azure ya está implementando también alternativas de IaaS.&lt;/p&gt;      &lt;p&gt;&lt;img src="http://3.bp.blogspot.com/-DKVzfLgb_Xk/TmgvSwTV3jI/AAAAAAAAAro/RaPZEMPlmDA/s1600/saas-paas-iaas.png" width="549" height="379" /&gt;&lt;/p&gt;      &lt;p&gt;Todo lo anterior responde a que hemos notado que son mejores instancias baratas que se puedan activar a discreción, de acuerdo a las exigencias que las aplicaciones van teniendo. Pero esto requiere un diseño de aplicación pensado en el patrón &lt;a href="http://en.wikipedia.org/wiki/Shared-nothing"&gt;shared-nothing&lt;/a&gt;, donde cada instancia dentro de un tier no comparte nada con otras instancias del mismo tier. Esto es básico para PaaS y SaaS.&lt;/p&gt;      &lt;p&gt;En síntesis, los mayores proveedores están pensando en varias alternativas para tener hardware como servicio en el que nos sea muy barato poner nuestros servicios con una cantidad de instancias de cómputo “ilimitada” que pueda crecer de acuerdo a nuestros requerimientos y que nos permita ofrecer un servicio robusto en el cual si una instancia cae, las otras siguen respondiendo, mientras la caída es reemplazada. Los silos, están OUT.&lt;/p&gt;      &lt;p&gt;Windows Azure nos ofrece muchas ventajas sobretodo a nosotros desarrolladores de .NET, porque hacer aplicaciones para la nube es muy natural y familiar; no hay que aprender un montón de técnicas o lenguajes nuevos y tenemos el soporte y la seguridad que nos ha dado siempre Microsoft.&lt;/p&gt;      &lt;p&gt;Por ejemplo, en Windows Azure tenemos diversos tamaños para las instancias de cómputo sobre las cuales queremos poner nuestro software. Hay desde instancias Extra Grandes de 8 cores de 1.67GHz cada uno y 14GB de RAM hasta pequeñas con 1 sola CPUs y 1.75GB de RAM. &lt;/p&gt;      &lt;p&gt;El hecho de que se diga que es mejor unidades baratas de cómputo que un solo silo poderoso y costoso no quiere decir entonces que lo mejor sea escoger siempre instancias pequeñas. O sea, ya definimos que no vamos a poner el software en una sola instancia… así que nos falta determinar cuál es el tamaño que deberán tener las instancias que compondrán el sistema. Y esto se hace de acuerdo a las características de nuestra aplicación. Por ejemplo si es una aplicación que necesita responder a muchos usuarios peticiones poco complicadas, es mejor tener muchas instancias pequeñas. Pero si por el contario son más bien pocos los requests pero con una demanda de cómputo alta, es mejor escoger instancias más grandes. Experiencia, intuición y sobretodo muchas pruebas, nos mostrarán cuál es la mejor alternativa.&lt;/p&gt;      &lt;p&gt;Una de las inclusiones de Windows Azure en los últimos tiempos, fueron las instancias extra small. Estas instancias son muy baratas. Solo valen a 4 centavos la hora que estén encendidas. Tienen 768MD de ram y la CPU es compartida. Esto no quiere decir que sean como los servidores compartidos típicos de internet. Esto, en virtud a que no están compartiendo el disco duro asignado, ni las unidades de memoria, ni el OS, ni el App Server ni el Web Server. Lo único que se comparte, son los cores de cómputo. Las instancias extra small son recomendadas sobretodo para pruebas de concepto o funcionalidades muy básicas, teniendo en cuenta sus características. En general para aplicaciones de línea de negocio, es mejor comenzar a analizar desde las pequeñas hacia arriba. &lt;/p&gt;      &lt;p&gt;Post Complementarios:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/warnov/archive/2009/10/07/stairway-to-azure.aspx"&gt;Stairway to Azure&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/warnov/archive/2010/10/05/recursos-after-azure-training.aspx"&gt;Windows Azure: Compilado de Recursos&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Agradecimientos a: &lt;a href="http://twitter.com/afwilliams"&gt;@afwilliams&lt;/a&gt; y &lt;a href="http://twitter.com/julitogtu"&gt;@julitogtu&lt;/a&gt; por provocar el post &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8688.wlEmoticon_2D00_smile_5F00_47738FEC.png" /&gt;&lt;/p&gt; &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10273222" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/26/divide-y-vencer-225-s-windows-azure.aspx</link>
      <pubDate>Sun, 26 Feb 2012 23:18:10 GMT</pubDate>
    </item>
    <item>
      <title>Microsoft Techday Cali</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/21/microsoft-techday-cali.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Microsoft llega Cali el próximo jueves 23 de Febrero, con el Microsoft TechDay, la conferencia de tecnología más importante para Desarrolladores y Profesionales de TI, en donde podrán ver en vivo las mejores tecnologías, productos y soluciones.        &lt;br /&gt;Si estás desarrollando, implementando o administrando soluciones de Tecnología, este evento es la mejor oportunidad para enfocarse en las tecnologías clave y los escenarios de negocio que les ayudarán a enfrentar los retos del mundo real de TI y prepararse para las innovaciones de mañana.&lt;/p&gt;      &lt;p&gt;En este evento, personalmente les estaré contando &lt;a href="http://blogs.msdn.com/b/warnov/archive/2012/02/08/windows-8-lo-que-deber-237-as-saber-y-nadie-te-ha-contado.aspx"&gt;todo lo que necesitan saber&lt;/a&gt; para comenzar a desarrollar aplicaciones de Windows 8.&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/warnov/archive/2012/02/08/windows-8-lo-que-deber-237-as-saber-y-nadie-te-ha-contado.aspx"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Windows 8 Logo" border="0" alt="Windows 8 Logo" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7853.Windows_2D00_8_2D00_Logo_5F00_7953A478.jpg" width="478" height="102" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;También tendremos a dos de nuestros Microsoft Community Specialists caleños:&lt;/p&gt;      &lt;p&gt;El investigador y empresario &lt;a href="http://mcscolombia.org/leonargo-vargas.aspx"&gt;Leonardo Bernal&lt;/a&gt; y el MSP &lt;a href="http://mcscolombia.org/henry-ruiz.aspx"&gt;Henry Ruiz&lt;/a&gt;, mostrándonos la integración de aplicaciones móviles de Windows Phone 7 con la nube de Windows Azure.&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://watwp.codeplex.com/"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="cloudphone" border="0" alt="cloudphone" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7853.cloudphone_5F00_69D092A9.png" width="152" height="211" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&amp;#160;&lt;/p&gt;      &lt;p&gt;En un track paralelo, para los IT Pro, nuestro nuevo Evangelist, &lt;a href="https://www.facebook.com/acadcol#!/alfredo.b.polo"&gt;Alfredo Barba&lt;/a&gt;, nos estará contando de la &lt;a href="http://www.microsoft.com/en-us/server-cloud/private-cloud/default.aspx"&gt;Nube Privada de Microsoft&lt;/a&gt; y luego, tendremos a nuestro MCS Gold, &lt;a href="http://mcscolombia.org/guillermo-taylor.aspx"&gt;Guillermo Taylor&lt;/a&gt;, mostrándonos lo que nos espera de &lt;a href="http://www.microsoft.com/sqlserver/en/us/future-editions.aspx"&gt;SQL Server 2012&lt;/a&gt;.&lt;/p&gt;      &lt;p&gt;       &lt;br /&gt;Pueden inscribirse para el evento en &lt;a href="http://aka.ms/TechDayCol"&gt;http://aka.ms/TechDayCol&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://aka.ms/TechDayCol"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8623.image_5F00_4870ED0D.png" width="489" height="475" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10270676" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/21/microsoft-techday-cali.aspx</link>
      <pubDate>Tue, 21 Feb 2012 19:55:45 GMT</pubDate>
    </item>
    <item>
      <title>Azure: Computación en la nube, con precios bajo tierra</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/14/azure-computaci-243-n-en-la-nube-con-precios-bajo-tierra.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Tal cual… Antes, tener un servidor web en Windows Azure (Web Role) más una base de datos de una giga, nos costaba no menos de USD$100 mensuales.&lt;/p&gt;      &lt;p&gt;Pero que pasa con los emprendedores que tienen su aplicación para móviles o para pequeños clientes que no necesitan todavía tanto poder?&lt;/p&gt;      &lt;p&gt;No hay una forma más económica para acceder?&lt;/p&gt;      &lt;p&gt;A partir de hoy, sí!&lt;/p&gt;      &lt;p&gt;Ya tenemos base de datos de 100MB!! Y el costo por mes es de apenas USD$5 por mes! Y esto incluye todo el poder de SQL Azure: Alta Disponibilidad, Tolerancia a Fallos, Auto Administración, Escalamiento Elástico, Conectividad On-premises y full SLA.&lt;/p&gt;      &lt;p&gt;Súmenle esto al costo de una instancia Extra-Small completamente dedicada a ustedes donde podrán desplegar su sitio/servicio que accede a la DB. Esto vale USD$28.8. Redondeando, esto nos llevaría a USD$35 como precio de arranque en Azure para una APP con un servidor web y base de datos.&lt;/p&gt;      &lt;p&gt;Otros costos, en las tablas que les dejo a continuación.&lt;/p&gt;      &lt;p&gt;       &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;b&gt;Tamaño de MV&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;&lt;b&gt;CPU Cores&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;&lt;b&gt;Memoria&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;&lt;b&gt;Costo por Hora&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;Extra Small&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;Shared&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;768 MB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$0.04&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;Small&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;1&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;1.75 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$0.12&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;Medium&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;2&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;3.5 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$0.24&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;Large&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;4&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;7 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$0.48&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;Extra Large&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;8&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;14 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$0.96&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/p&gt;      &lt;p&gt;       &lt;table border="0" cellpadding="0"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;b&gt;Tamaño de la BD&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;&lt;b&gt;Precio por mes (USD)&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;0 a 100 MB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$5.00&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;de 100 MB a 1 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$9.99&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;de 1 GB a 10 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$9.99 por la primera GB, $4.00 por cada GB adicional&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;de 10 GB a 50 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$45.99 por las primeras 10 GB, $2.00 por cada GB adicional&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;de 50 GB a 150 GB&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p&gt;$125.99 por las primeras 50 GB, $1.00 por cada GB adicional&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/p&gt;      &lt;p&gt;Tangamos en cuenta sin embargo, que 100MB no es un tipo de DB que escojamos al crearla. Solo sucede que si por ejemplo escogemos una DB de 1GB pero el consumo siempre se mantiene por debajo de 100MB, entonces el cobro siempre será solo de USD$5.&lt;/p&gt;      &lt;p&gt;Como se observa, entre más grande el servicio, más barato!&lt;/p&gt;      &lt;p&gt;Recordemos que cuando salió Azure, 50GB de SQL Azure nos costaban USD$500! Hoy valen $125.99. &lt;/p&gt;      &lt;p&gt;Seguimos aterrizando los precios…&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10267994" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/14/azure-computaci-243-n-en-la-nube-con-precios-bajo-tierra.aspx</link>
      <pubDate>Wed, 15 Feb 2012 00:44:57 GMT</pubDate>
    </item>
    <item>
      <title>Me sirve en Development Environment, pero no en Azure!</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/12/me-sirve-en-development-environment-pero-no-en-azure.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;g:plusone size="small"&gt;&lt;/g:plusone&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;p&gt;Este post estará dedicado a recopilar las posibles causas por las cuales una aplicación Windows Azure corre bien en desarrollo, pero no puesta en el cloud.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;1. Aplicaciones basadas en la hora&lt;/strong&gt;: Recuerden muy bien que la hora de los servidores en Windows Azure, no es la misma que aquella que uds. tienen en sus máquinas de desarrollo. Bueno, a menos que vivan sobre el meridiano de Greenwich. Para ser más explícitos, la hora de estos servidores es UTC. Mientras que por ejemplo Colombia es UTC-5. Así que tengan esto en sus cuentas.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;2. La cultura por defecto en los servidores de Azure, puede variar con respecto a la de sus máquinas&lt;/strong&gt;. En Azure es por defecto en-US, con todo lo que esto conlleva con respecto a determinación del punto decimal y demás. Si ustedes por ejemplo tienen una rutina que convierte strings en números decimales, tengan muy en cuenta que los símbolos de separación de decimales por ejemplo pueden cambiar y la aplicación se comportará distinto. Esto puede pasar con fechas, etc.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;3. Por defecto Windows Azure no maneja variables de sesión ni aplicación distribuidas.&lt;/strong&gt; Así que si observan que los valores de estas variables desaparecen cuando tienen más de una instancia en la nube, piensen que es hora de adquirir los servicios de AppFabric para poder tener este caché distribuido y que sus aplicaciones se comporten igual en la nube. Por qué pasa esto? Cuando hacemos un request, nos contesta por ejemplo el WebRole A. Allí iniciamos la variable de sesión &lt;i&gt;MiIngenuaVariable.&lt;/i&gt; Luego volvemos a hacer un request, pero esta vez el LoadBalancer lo envía al WebRole B. Estos WebRoles, no comparten la memoria y solo fueron iguales al principio de la ejecución del servicio. Luego cada uno comenzó a tener una historia distinta. Entonces cuando consultamos la variable &lt;i&gt;MiIngenuaVariable, &lt;/i&gt;claro, estará en NULL.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;4. Creé un pdf, lo grabe en el disco duro del servidor y luego cuando lo llamé ya no estaba?&lt;/strong&gt; Juas! Muchos me han llegado con ese problema y es muy parecido al anterior. Recuerden que no se comparte el estado cuando tenemos varias instancias. Entonces una instancia no tiene ni idea de lo que hemos grabado en el disco duro de otra. Así pues, la solución es que los archivos que requieran ser consultados luego, los graben en el Blob Storage, donde quedarán con una dirección única accesible desde cualquier instancia o desde cualquier parte del universo que posea internet.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;5. Los cambios que hago en mi despliegue se revierten! &lt;/strong&gt;Despliego mi servicio, luego ejecuto una rutina para modificar unos archivos de configuración (bien sea incluida en el servicio, o a través de RDP). Luego al otro día, esos archivos de configuración ya no están como los dejé y el servicio me falla!!! Eso pasa, porque en Windows Azure las máquinas ocasionalmente se reinician y vuelven a su estado original; esto es producto de patchs que se aplican, o reinicios determinados por el AppFabric al ver que una instancia se está comportando necia, o no quiere responder educadamente. En esots casos, la instalación vuelve a quedar idénticamente a como estaba la primera vez. No esperes encontrar tus modificaciones en caliente! Se espera que a futuro cercano los VM Role de Windows Azure tengan estas capacidades. Se llamarán VM Role Persistentes. Por ahora, lo recomendado obviamente es que estos valores de configuración sean almacenados en el archivo ServiceConfiguration, que es una archivo separado del paquete de despliegue, por lo que sus valores permanecerán una vez sean modificados, aun cuando se reinicien las instancias. Lo mejor de todo, es que estos valores se pueden cambiar “en caliente” de una manera muy sencilla desde el portal de Windows Azure.&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;6. La aplicación me trae los datos más rápido de mi SQL Server local que de SQL Azure!&lt;/strong&gt; Por caridad, espero que no hayan puesto en Azure la DB de SQL Azure en North US y luego la aplicación en South Central! Imagínense la cantidad de espacio que han de recorrer sus datos antes de llegar al destino! Usen siempre el mismo grupo de afinidad! Para Colombia y Sur América en general, es mejor siempre poner todo en South Central US.&lt;/p&gt;      &lt;p&gt;Otros ejemplos que vaya encontrando los iré anexando a esta guía. Keep on coding!&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10267092" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/12/me-sirve-en-development-environment-pero-no-en-azure.aspx</link>
      <pubDate>Mon, 13 Feb 2012 04:13:29 GMT</pubDate>
    </item>
    <item>
      <title>SQL Azure: Index was outside the bounds of the array</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/11/sql-azure-index-was-outside-the-bounds-of-the-array.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;&lt;/font&gt;      &lt;p&gt;&lt;font size="1"&gt;Dice el corresponsal, que trabajando con SQL Server Management Studio conectándose a SQL Azure, luego de estar conectado y ejecutar algunas consultas sin problemas, empieza a experimentar comportamientos erráticos, que no le permiten borrar objetos de SQL Azure ni tampoco obtener el script de creación de los mismos, obteniendo siempre el mensaje de error: Index was outside the bounds of the array&lt;/font&gt;&lt;/p&gt;     &lt;font size="1"&gt;&lt;/font&gt;      &lt;p&gt;&lt;font size="1"&gt;He de decirles, que esto sucede dado que desde el último cambio grande en la estructura de SQL Azure en Julio del año pasado, es necesario acceder a SQL Azure usando la versión &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26727"&gt;SQL Server 2008 R2 SP1&lt;/a&gt;&lt;b&gt;&lt;/b&gt; . Que ya está preparada para los cambios que hubo en SQL Azure. &lt;/font&gt;&lt;/p&gt;     &lt;font size="1"&gt;&lt;/font&gt;      &lt;p&gt;&lt;font size="1"&gt;El número de versión de SSMS con el que deben quedar, es 10.50.2500 a hoy, febrero 11 de 2012, para poder acceder correctamente a SQL Azure. Esto debería ser suficiente para evitar esos comportamientos “erráticos”.&lt;/font&gt;&lt;/p&gt;     &lt;font size="1"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10266877" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/11/sql-azure-index-was-outside-the-bounds-of-the-array.aspx</link>
      <pubDate>Sat, 11 Feb 2012 18:16:32 GMT</pubDate>
    </item>
    <item>
      <title>Windows 8: Lo que deberías saber y nadie te ha contado</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/08/windows-8-lo-que-deber-237-as-saber-y-nadie-te-ha-contado.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;     &lt;p&gt;Ya a estas alturas del partido, sabrás que con Windows 8 vienen grandes innovaciones dentro de este sistema operativo. Eso, si es que no lo has probado por tu propia cuenta, bajándolo gratuitamente de &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516"&gt;aquí&lt;/a&gt;. Cualquier máquina que corra Windows 7, te servirá para probarlo.&lt;/p&gt;      &lt;p&gt;La innovación más grande por su puesto es la inclusión del ambiente Metro Style&lt;/p&gt;      &lt;p&gt;&lt;a href="http://www.mostiwant.com/blog/wp-content/uploads/2011/06/Windows-8-Metro-Style-Start-Screen.jpg"&gt;&lt;img style="background-image: none; display: inline" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5238.clip_5F00_image002_5F00_1448631C.jpg" width="591" height="315" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;En pocas palabras, el ambiente Metro Style está orientado a ser amigable en dispositivos con touch screen. Específicamente Tablet PCs y Slates: &lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0028.clip_5F00_image003_5F00_609FF6BD.jpg"&gt;&lt;img style="background-image: none; display: inline" title="" border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0458.clip_5F00_image003_5F00_thumb_5F00_583C2166.jpg" width="601" height="451" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Ojo: que esto no quiere decir que el desktop tradicional haya desaparecido. Este sigue existiendo y también ha evolucionado con muchas mejoras como un Explorer con Ribbon, copia de archivos optimizadas, soporte a USB3 para velocidades de transferencia impensables y otras más que pueden encontrar en el &lt;a href="http://blogs.msdn.com/b/b8/"&gt;blog&lt;/a&gt; oficial de Windows para usuarios finales.&lt;/p&gt;      &lt;p&gt;&lt;a href="http://www.mobilehighlights.de/image/33549/win8-desktop-2/microsoft-einblicke-in-windows-8.jpg"&gt;&lt;img style="background-image: none; display: inline" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6712.clip_5F00_image005_5F00_56F78887.jpg" width="603" height="452" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Desde el punto de vista de un desarrollador, el ambiente desktop no tiene muchos cambios radicales a nivel de presentación de nuestras aplicaciones. Habría que tener sin embargo en cuenta las novedades de la nueva versión del Framework .NET que viene con Windows 8, que es la 4.5 y que entre otras cosas interesantes, tiene la inclusión de Async, que nos permite crear interfaces fluidas de una manera más sencilla. Sin embargo, básicamente podemos pensar en estos cambios como sencillamente un par de librerías más por aprender.&lt;/p&gt;      &lt;p&gt;El cambio radical está en el modo Metro Style… aunque es radical solo en estructura; pues como veremos, la programación es la misma. De hecho, si ya sabes .NET y XAML o HTML y Javascript, &lt;b&gt;ya sabes programar para Windows 8 &lt;/b&gt;en Metro Style!&lt;/p&gt;      &lt;p&gt;Pero antes de describir estos cambios estructurales consideremos el porqué de aplicaciones Metro Style. Es evidente que la movilidad se ha vuelto supremamente importante hoy en día y que todos queremos tener un sistema operativo fácil de transportar. Hemos visto que estas características son ofrecidas por los tablets y slates. Que estos en general no poseen teclado, sino que son muy basados en touch. Entonces, necesitábamos una versión de Windows adecuada para estos escenarios. Esto sin mencionar que la durabilidad de la batería es súper importante. Queremos que nuestro dispositivo aguante aunque sea todo un día de trabajo sin necesidad de ser conectado a la electricidad. Pero para lograr esto, requerimos de procesadores y discos duros que no consuman tanta energía y de un diseño de aplicaciones que las permita suspender de manera óptima para ahorrar hasta el último vatio cuando no se estén usando.&lt;/p&gt;      &lt;p&gt;Existe un tipo de procesador que tiene un consumo supremamente bajo de energía y que fácilmente puede garantizar 8 horas de funcionamiento. Es el procesador ARM.&lt;/p&gt;      &lt;p&gt;Cómo pueden garantizar esto? Pues teniendo un conjunto de instrucciones reducido en comparación con los procesadores de arquitectura x86 o x64 a los que estamos acostumbrados en nuestras PCs. Es un precio que hay que pagar para lograr durabilidad. Pero si lo vemos bien, un rediseño del sistema operativo pensando en aplicaciones fácilmente suspendibles y en la eliminación de características que no son muy necesarias en un dispositivo móvil, sumado a la inclusión de hardware especial como los discos duros de estado sólido, nos permite tener un aparato que funciona como lo necesitamos y con la duración requerida. Como si fuera poco, por añadidura cuando logramos esto, tenemos un sistema operativo que arranca y está listo para usarse en tiempo de solo 3 segundos!!! Lo cual es una característica súper importante para la movilidad.&lt;/p&gt;      &lt;p&gt;En síntesis, se requería un ambiente de aplicaciones amigables al tacto, que corrieran de manera óptima en procesadores ARM (y por ende en procesadores de arquitectura tradicional) y que además ofreciera muchas facilidades para tener una experiencia de usuario impactante.&lt;/p&gt;      &lt;p&gt;Y precisamente eso es lo que ofrece la interfaz metro style.&lt;/p&gt;      &lt;p&gt;Esta gran iniciativa nuestra no para con la creación del sistema operativo y la habilitación de excelentes dispositivos móviles que lo usan. También dispondremos de un marketplace: &lt;b&gt;&lt;a href="http://blogs.msdn.com/b/windowsstore"&gt;Windows Store&lt;/a&gt;&lt;/b&gt;. Diseñado específicamente para enriquecer el ecosistema de aplicaciones metro style que se van a empezar a requerir bajo este nuevo esquema. Aplicaciones innovadoras, muy atractivas para el usuario que van a poder ser vendidas y compradas de una manera muy sencilla a través del store. Cualquier desarrollador desde su casa va a poder crear su aplicación, subirla al atore y empezar a recibir ganancias por ella, muy al estilo de Windows Phone. Y en este caso, para Colombia tenemos garantizado el acceso al store. Somos uno de los pocos países de Latinoamérica con este privilegio.&lt;/p&gt;      &lt;p&gt;Visto lo visto, supongo que ahora estarás preguntándote cómo crear estas aplicaciones Metro Style…&lt;/p&gt;      &lt;p&gt;Como te dije antes, si sabes .NET; en especial Silverlight, entonces ya sabes crearlas!!! Además, no necesitas ser un desarrollador experimentado en .NET para lograrlo. Si sabes HTML y Javascript, también el desarrollo de este tipo de aplicaciones está a la mano. Así que si has desarrollado sitios web por algún tiempo con cierta carga de Javascript, también estás listo para arrancar! De hecho si tu experiencia es en C++, también hay cabida para ti.&lt;/p&gt;      &lt;p&gt;Lo único necesario es aprender un par de librerías más; tarea nada difícil, teniendo en cuenta que el intellisense es completo para todos los lenguajes aceptados en la plataforma de desarrollo para Metro Style.&lt;/p&gt;      &lt;p&gt;Entonces, ya sabiendo que a nivel de desarrollo todo funciona de una manera familiar, entremos un poco más y aprendamos realmente cuál es la plataforma sobre la que están las aplicaciones Metro Style.&lt;/p&gt;      &lt;h3&gt;WinRT&lt;/h3&gt;      &lt;p&gt;WinRT es la abreviación de Windows Runtime. Y es la plataforma sobre la cual se programan aplicaciones de tipo Metro Style para Windows 8.&lt;/p&gt;      &lt;p&gt;WinRT NO está basada en .NET. De hecho, WinRT está al nivel del API nativa de Windows por excelencia que es Win32. WinRT accede nativamente al Kernel de Windows, ofreciendo gran velocidad de ejecución por un lado y por otro una abstracción muy útil para poder acceder a todos los recursos del sistema a través de un paradigma orientado totalmente a objetos, de una manera extremadamente sencilla.&lt;/p&gt;      &lt;p&gt;.NET tradicional trataba de solventar esta tarea… pero alguna vez trataron de acceder a la webcam de su máquina para obtener una sencilla foto? Si es así de seguro recordaran lo divertido que es hacer los DLLIMPORT requeridos para traer APIs de WIN32.&lt;/p&gt;      &lt;p&gt;Con WinRT estos llamados ya no son necesarios, pues la conexión ya es directa y se logra completamente a través de objetos ya existentes en la plataforma.&lt;/p&gt;      &lt;p&gt;WinRT está basado en 33 APIs nativas con las que se puede acceder al core de sistema operativo. Como se aprecia, están divididas en 5 grandes grupos: Fundamentales, Dispositivos, Media, Comunicaciones y Datos e Interfaz de Usuario.&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5228.clip_5F00_image007_5F00_75CDFC65.jpg"&gt;&lt;img style="background-image: none; display: inline" title="clip_image007" border="0" alt="clip_image007" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6215.clip_5F00_image007_5F00_thumb_5F00_4DBB4D46.jpg" width="618" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;En general WinRT se presenta como la base sólida y eficiente para construir Metro Style apps.&lt;/p&gt;      &lt;p&gt;De acuerdo a lo anterior, si equiparamos a WinRT con .NET tradicional, tendríamos una gráfica como la siguiente:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2273.clip_5F00_image009_5F00_1A7F13DD.jpg"&gt;&lt;img style="background-image: none; display: inline" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4718.clip_5F00_image009_5F00_thumb_5F00_0B683503.jpg" width="626" height="365" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Como lo había mencionado vemos que WinRT (la zona verde) accede directamente al Kernel de Windows, de igual forma que lo hace .NET, Win32 e Internet Explorer. Vemos sin embargo que estos últimos van a estar destinados para las aplicaciones de escritorio tradicionales, con los conocimientos que ya tenemos.&lt;/p&gt;      &lt;p&gt;WinRT está basado en un modelo de aplicaciones (Application Model) en el cual cada aplicación es una clase como tal (contenedora de otras clases), que son instanciadas por el proceso WWAHost.exe que es el encargado de administrar funciones como la suspensión. Cada aplicación es instanciada por un WWAHost independiente, a través del ejecutable de la aplicación que aparece como miaplicación.exe, pero tiene el comportamiento particular de luego lanzar el Host:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8831.image_5F00_2A3EA8E1.png"&gt;&lt;img style="background-image: none; display: inline" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3731.image_5F00_thumb_5F00_76963C82.png" width="635" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Esto me recuerdo mucho el viejo esquema de COM; y efectivamente muchos de los conceptos de WinRT provienen de allí, excepto que ya no usamos un acercamiento basado en interfaces sino basado en objetos. Además tenemos variedad de lenguajes gracias a las proyecciones y también nos podemos olvidar del DLL Hell, gracias a la metadata que aún conservan los componentes de WinRT, que son una gran herencia de .NET, que por su puesto sigue su camino en aplicaciones de escritorio convencionales, así como en las capas de backend y servicios en los sistemas n-layer.&lt;/p&gt;      &lt;p&gt;Vemos que sobre este modelo de aplicaciones tenemos todas las apis que describí anteriormente y que básicamente nos permiten acceder a los recursos del sistema y a librerías que nos facilitan el desarrollo de nuestras aplicaciones.&lt;/p&gt;      &lt;p&gt;Sobre las apis, ya podemos extender nuestras proyecciones de lenguaje que nos permiten acceder a ellas de distintas maneras, de acuerdo a nuestros gustos. Si somos familiares con Silverlight y .NET, usamos VB o C#. También podemos usar C++ o si venimos del mundo Web, podemos usar Javascript que usa el motor Chakra. El mismo de Internet Explorer.&lt;/p&gt;      &lt;p&gt;Finalmente, sobre estas proyecciones de lenguaje ofrecemos los lenguajes de marcado para poder crear interfaces declarativamente. No es más que el típico XAML que conocíamos de WPF, Silverlight y WP7 para cuando usemos C#, VB e interesantemente C++. SI algo recuerdo con pena y dolor de C++, es la creación de interfaces gráficas a punta de C++. Era algo completamente dispendioso, complicado y propenso a errores. Ahora tenemos todo el poder nativo de C++, complementado por el poder declarativo de XAML para la UI.&lt;/p&gt;      &lt;p&gt;En el caso de Javascript, naturalmente el lenguaje de presentación viene a ser HTML acompañado de CSS para la definición de estilos. Esto obviamente hará muy fácil traducir aplicaciones HTML5 para web, a aplicaciones HTML para Metro Style.&lt;/p&gt;      &lt;h4&gt;.NET y WinRT&lt;/h4&gt;      &lt;p&gt;Ya vimos que básicamente estos son dos stacks distintos dentro de Windows. Sin embargo, dado que WinRT ofrece proyecciones de lenguaje para C# y VB, el resultado es que la mayoría de librerías de .NET tienen su equivalente en WinRT. Algunos métodos tienen diferencias sutiles y encontramos nuevas librerías en WinRT que mejoran el acceso a dispositivos y recursos del sistema. De hecho es posible para nosotros crear componentes en .NET que puedan ser consumidos por WinRT, siempre y cuando usen las librerías del Namespace Windows.&lt;/p&gt;      &lt;h4&gt;Componentes en WinRT&lt;/h4&gt;      &lt;p&gt;En WinRT podemos crear componentes que pueden ser reutilizados en otras apps WinRT. Todos los componentes y aplicaciones generan una metadata que permite un versionamiento transparente y la garantía de que las aplicaciones correrán correctamente en el futuro.&lt;/p&gt;      &lt;h3&gt;Cómo comenzar con WinRT y Windows 8?&lt;/h3&gt;      &lt;p&gt;Es muy sencillo y free, solo tienes que bajarte tu versión de desarrollador de Windows 8 que además incluye las herramientas de desarrollo que en este caso es Visual Studio 2011, de este &lt;a href="http://msdn.microsoft.com/en-us/windows/apps/br229516"&gt;link&lt;/a&gt;.&lt;/p&gt;      &lt;p&gt;Además para más recursos y videos instructivos, les recomiendo visitar el sitio oficial de Windows para desarrolladores: &lt;a href="http://buildwindows.com"&gt;http://buildwindows.com&lt;/a&gt; y &lt;a href="http://dev.windows.com"&gt;http://dev.windows.com&lt;/a&gt;. Para saber más de aplicaciones Metro Style: &lt;a href="http://msdn.microsoft.com/windows/apps"&gt;http://msdn.microsoft.com         &lt;br /&gt;/windows/apps&lt;/a&gt;. Para comentar y resolver dudas: &lt;a href="http://forums.dev.windows.com"&gt;http://forums.dev.windows.com&lt;/a&gt;. Para saber más del marketplace: &lt;a href="http://blogs.msdn.com/b/windowsstore"&gt;http://blogs.msdn.com/b/windowsstore&lt;/a&gt;; para saber más de características de usuario final de sistema operativo, visiten el &lt;a href="http://blogs.msdn.com/b/b8/"&gt;blog&lt;/a&gt; oficial. Y para obetener la información de primera mano desde las redes sociales:&lt;/p&gt;      &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="137"&gt;             &lt;p&gt;Facebook (developer)&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="189"&gt;             &lt;p&gt;&lt;a href="http://fb.windows.com/developers"&gt;http://&lt;/a&gt;&lt;a href="http://fb.windows.com/developers"&gt;fb.windows.com/developers&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="137"&gt;             &lt;p&gt;Twitter (@b8) &lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="189"&gt;             &lt;p&gt;&lt;a href="http://twitter.com/BuildWindows8"&gt;http://twitter.com/BuildWindows8&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="137"&gt;             &lt;p&gt;Twitter (@windevs)&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="189"&gt;             &lt;p&gt;&lt;a href="https://twitter.com/windevs"&gt;https://twitter.com/windevs&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td valign="top" width="137"&gt;             &lt;p&gt;YouTube (developer)&lt;/p&gt;           &lt;/td&gt;            &lt;td valign="top" width="189"&gt;             &lt;p&gt;&lt;a href="http://www.youtube.com/user/WindowsVideos"&gt;http://www.youtube.com/user/WindowsVideos&lt;/a&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10265626" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/08/windows-8-lo-que-deber-237-as-saber-y-nadie-te-ha-contado.aspx</link>
      <pubDate>Wed, 08 Feb 2012 22:20:23 GMT</pubDate>
    </item>
    <item>
      <title>ActivaTV: La evolución del Webcast</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/02/01/activatv-la-evoluci-243-n-del-webcast.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;g:plusone size="small"&gt;&lt;/g:plusone&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;p&gt;Como han de saber, uno de los medios que hemos usado para comunicar y difundir nuestras tecnologías, es el Webcast.&lt;/p&gt;      &lt;p&gt;Un mecanismo a través de nuestra herramienta de LiveMeeting, que permite a la audiencia conectarse a una reunión virtual donde un speaker activa su PPT y la expone.&lt;/p&gt;      &lt;p&gt;Con el ánimo de hacer esta actividad más dinámica y agradable, desde Microsoft Colombia hemos preparado {&lt;b&gt;Activa}TV&lt;/b&gt;. Un espacio donde a través de LiveMeeting transmitiremos varias secciones en las que actualizamos a la audiencia con lo último de nuestras tecnologías y actividades.&lt;/p&gt;      &lt;p&gt;Es así como en este “show” tendremos un tema principal tratado de una manera distinta a las típicas presentaciones magistrales. Será más bien un diálogo en el que se podrá aprender de la tecnología que se trata. Estaremos presentando además casos reales de aplicación de nuestras iniciativas en la industria nacional. También tendremos sección de noticias y concursos.&lt;/p&gt;      &lt;p&gt;En general, este espacio lo estaremos llevando a cabo mensualmente, el primer martes y estaremos contando con diversos invitados.&lt;/p&gt;      &lt;p&gt;Nuestra primera emisión será este martes 7 de febrero. El tema principal será Windows 8 y los fundamentos de su nueva plataforma de desarrollo. Y dentro de nuestros invitados, contamos con un emprendedor que usando nuestras iniciativas logró sacar un producto que hoy día es crucial para las entidades de salud en nuestro país.&lt;/p&gt;      &lt;p&gt;Regístrense a &lt;b&gt;{Activa}TV&lt;/b&gt; para que se activen desde sus casas u oficinas aquí: &lt;a href="http://aka.ms/activatv"&gt;http://aka.ms/activatv&lt;/a&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10262887" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/02/01/activatv-la-evoluci-243-n-del-webcast.aspx</link>
      <pubDate>Wed, 01 Feb 2012 18:43:22 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Nueva versión crear tabla a partir de un texto separado por comas (CSV)</title>
      <description>&lt;p&gt;&lt;span&gt;En un art&amp;iacute;culo anterior, &lt;/span&gt;&lt;span&gt;&lt;a href="http://geeks.ms/blogs/fangarita/archive/2011/01/03/code-crear-una-tabla-a-apartir-de-un-texto-se.aspx"&gt;&lt;span style="color:#000000;"&gt;[Code] Crear una tabla a partir de un texto separado por comas (CSV)&lt;/span&gt;&lt;/a&gt;, se present&amp;oacute; c&amp;oacute;mo realizar &amp;eacute;sta tarea de la manera m&amp;aacute;s simple, ahora, se complementar&amp;aacute; &amp;eacute;sta soluci&amp;oacute;n presentando una alternativa que usa CTEs para realizar el trabajo recursivo de analizar las palabras en la sentencia&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Usando la capacida de las expresiones CTEs de crear iteraciones se permite la creaci&amp;oacute;n de la iteraci&amp;oacute;n consigo mismo, es decir en la primera parte, se pone la semilla y en la segunda parte (luego de union all) se implementa la iteraci&amp;oacute;n, la cual devuelve las posiciones inicial y final del texto al que se le va a aplicar substring:&lt;/p&gt;
&lt;pre&gt;CREATE FUNCTION dbo.Split (@sep char(1), @s varchar(512)) 
RETURNS table 
AS 
RETURN ( 
    WITH Pieces(pn, start, stop) AS ( 
      SELECT 1, 1, CHARINDEX(@sep, @s) 
      UNION ALL 
      SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1) 
      FROM Pieces 
      WHERE stop &amp;gt; 0 
    ) 
    SELECT pn, 
      SUBSTRING(@s, start, CASE WHEN stop &amp;gt; 0 THEN stop-start ELSE 512 END) AS s 
    FROM Pieces 
  ) 
&lt;/pre&gt;
&lt;p&gt;La soluci&amp;oacute;n anterior presenta una forma interesante de aproximarse al problema pero a&amp;uacute;n usa recursi&amp;oacute;n, esto se puede eliminar usando XML como base de an&amp;aacute;lisis&lt;/p&gt;
&lt;pre&gt;CREATE FUNCTION [dbo].[Split] (@sep VARCHAR(32), @s VARCHAR(MAX)) 
 
RETURNS @t TABLE 
    ( 
        val VARCHAR(MAX) 
    )    
AS 
    BEGIN 
        DECLARE @xml XML 
        SET @XML = N&amp;#39;&amp;#39; + REPLACE(@s, @sep, &amp;#39;&amp;#39;) + &amp;#39;&amp;#39; 
 
        INSERT INTO @t(val) 
        SELECT r.value(&amp;#39;.&amp;#39;,&amp;#39;VARCHAR(255)&amp;#39;) as Item 
        FROM @xml.nodes(&amp;#39;//root/r&amp;#39;) AS RECORDS(r) 
 
        RETURN 
    END 
&lt;/pre&gt;
&lt;p&gt;El truco consiste en convertir el texto, en un xml y luego usando el tipo de datos especial (y sus funciones) leemos la informaci&amp;oacute;n como una tabla desde XML, el problema con esta soluci&amp;oacute;n es que tiene problemas de desempe&amp;ntilde;o y se presenta solo como referencia&lt;/p&gt;
&lt;p&gt;Tambi&amp;eacute;n se presenta uno de&amp;nbsp;mis trucos favoritos el uso de la funci&amp;oacute;n &lt;a href="http://msdn.microsoft.com/es-co/library/cc280463.aspx"&gt;dm_fts_parser&lt;/a&gt;, la cual permite realizar &amp;eacute;ste an&amp;aacute;lisis r&amp;aacute;pidamente, con la ventaja de:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ser una funci&amp;oacute;n del sistema, &lt;/li&gt;
&lt;li&gt;permitir configurar el idioma&lt;/li&gt;
&lt;li&gt;Ser sensible al acentro y may&amp;uacute;sculas&lt;/li&gt;
&lt;li&gt;Poder usar una lista de palabras a ignorar&lt;/li&gt;
&lt;li&gt;M&amp;aacute;s funcionalidades&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;select display_term from sys.dm_fts_parser(&amp;#39;&amp;quot;&amp;#39; + &amp;#39;Mi texto separado por espacios&amp;#39; + &amp;#39;&amp;quot;&amp;#39;, 1033, 0,0) &lt;/pre&gt;
&lt;p&gt;Es ejemplo est&amp;aacute; para idioma ingl&amp;eacute;s con el c&amp;oacute;digo 1033, para un listado completo&amp;nbsp;se puede consultar el listado &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splocale.lcid.aspx"&gt;LCID&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda, &lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202789" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/01/17/code-nueva-versi-243-n-crear-tabla-a-partir-de-un-texto-separado-por-comas-csv.aspx</link>
      <pubDate>Wed, 18 Jan 2012 02:16:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo convertir un número a letras</title>
      <description>&lt;p&gt;Lo primero que se debe advertir antes de poner el c&amp;oacute;digo a disposici&amp;oacute;n de todos, es que no recomiendo esta aproximaci&amp;oacute;n de manera pr&amp;aacute;ctica dado que SQL est&amp;aacute; optimizado para c&amp;aacute;lculos basados en conjuntos (Selects, Joins y dem&amp;aacute;s); manejo de cadenas y c&amp;aacute;lculos se deber&amp;iacute;an hacer de otras maneras (CLR, C&amp;oacute;digo Ciente, etc.), pero si alguna vez se necesita o si se quiere traducir a otro lenguaje se puede usar el siguiente c&amp;oacute;digo para generar n&amp;uacute;meros como letras. Para tener m&amp;aacute;s claridad sobre el tema de buenas pr&amp;aacute;cticas se puede revisar el art&amp;iacute;culo de &lt;a href="http://geeks.ms/blogs/fangarita/archive/2011/01/17/info-optimizaci-243-n-de-consultas-parte-1-generalidades.aspx"&gt;optimizaci&amp;oacute;n de consultas&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No es el c&amp;oacute;digo m&amp;aacute;s eficiente que se puede escribir para el tema, pero funciona:&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;create PROCEDURE [dbo].[sp_Dinero_a_Texto]
(
  @Numero NUMERIC(19,4)
 )
AS
BEGIN
 
  SET NOCOUNT ON
  DECLARE @lnEntero INT,
    @lcRetorno VARCHAR(512),
    @lnTerna INT,
    @lcMiles VARCHAR(512),
    @lcCadena VARCHAR(512),
    @lnUnidades INT,
    @lnDecenas INT,
    @lnCentenas INT,
    @lnFraccion INT
 
  SELECT @lnEntero = CAST(@Numero AS INT),
    @lnFraccion = (@Numero - @lnEntero) * 100,
    @lcRetorno = &amp;#39;&amp;#39;,
    @lnTerna = 1
 
  WHILE @lnEntero &amp;gt; 0
  BEGIN /* WHILE */
 
    -- Recorro columna por columna
    SELECT @lcCadena = &amp;#39;&amp;#39;
    SELECT @lnUnidades = @lnEntero % 10
    SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
    SELECT @lnDecenas = @lnEntero % 10
    SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
    SELECT @lnCentenas = @lnEntero % 10
    SELECT @lnEntero = CAST(@lnEntero/10 AS INT)	

	--print cast(@lnCentenas as varchar(3)) + cast(@lnDecenas as varchar(3))+ cast(@lnUnidades as varchar(3))
	--print @lnEntero
 
    -- Analizo las unidades
    SELECT @lcCadena =
    CASE /* UNIDADES */
      WHEN @lnUnidades = 1 AND @lnTerna = 1 THEN &amp;#39;UNO &amp;#39; + @lcCadena
      WHEN @lnUnidades = 1 AND @lnTerna &amp;lt;&amp;gt; 1 THEN &amp;#39;UN &amp;#39; + @lcCadena
      WHEN @lnUnidades = 2 THEN &amp;#39;DOS &amp;#39; + @lcCadena
      WHEN @lnUnidades = 3 THEN &amp;#39;TRES &amp;#39; + @lcCadena
      WHEN @lnUnidades = 4 THEN &amp;#39;CUATRO &amp;#39; + @lcCadena
      WHEN @lnUnidades = 5 THEN &amp;#39;CINCO &amp;#39; + @lcCadena
      WHEN @lnUnidades = 6 THEN &amp;#39;SEIS &amp;#39; + @lcCadena
      WHEN @lnUnidades = 7 THEN &amp;#39;SIETE &amp;#39; + @lcCadena
      WHEN @lnUnidades = 8 THEN &amp;#39;OCHO &amp;#39; + @lcCadena
      WHEN @lnUnidades = 9 THEN &amp;#39;NUEVE &amp;#39; + @lcCadena
      ELSE @lcCadena
    END /* UNIDADES */

	print @lcCadena
 
    -- Analizo las decenas
    SELECT @lcCadena =
    CASE /* DECENAS */
      WHEN @lnDecenas = 1 THEN
        CASE @lnUnidades
          WHEN 0 THEN &amp;#39;DIEZ &amp;#39;
          WHEN 1 THEN &amp;#39;ONCE &amp;#39;
          WHEN 2 THEN &amp;#39;DOCE &amp;#39;
          WHEN 3 THEN &amp;#39;TRECE &amp;#39;
          WHEN 4 THEN &amp;#39;CATORCE &amp;#39;
          WHEN 5 THEN &amp;#39;QUINCE &amp;#39;
          ELSE &amp;#39;DIECI&amp;#39; + @lcCadena
        END
      WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN &amp;#39;VEINTE &amp;#39; + @lcCadena
      WHEN @lnDecenas = 2 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;VEINTI&amp;#39; + @lcCadena
      WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN &amp;#39;TREINTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 3 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;TREINTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN &amp;#39;CUARENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 4 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;CUARENTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN &amp;#39;CINCUENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 5 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;CINCUENTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN &amp;#39;SESENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 6 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;SESENTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN &amp;#39;SETENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 7 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;SETENTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN &amp;#39;OCHENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 8 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;OCHENTA Y &amp;#39; + @lcCadena
      WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN &amp;#39;NOVENTA &amp;#39; + @lcCadena
      WHEN @lnDecenas = 9 AND @lnUnidades &amp;lt;&amp;gt; 0 THEN &amp;#39;NOVENTA Y &amp;#39; + @lcCadena
      ELSE @lcCadena
    END /* DECENAS */

	print @lcCadena
 
    -- Analizo las centenas
    SELECT @lcCadena =
    CASE /* CENTENAS */
      WHEN @lnCentenas = 1 AND @lnUnidades = 0 AND @lnDecenas = 0 THEN &amp;#39;CIEN &amp;#39; + @lcCadena
      WHEN @lnCentenas = 1 AND NOT(@lnUnidades = 0 AND @lnDecenas = 0) THEN &amp;#39;CIENTO &amp;#39; + @lcCadena
      WHEN @lnCentenas = 2 THEN &amp;#39;DOSCIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 3 THEN &amp;#39;TRESCIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 4 THEN &amp;#39;CUATROCIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 5 THEN &amp;#39;QUINIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 6 THEN &amp;#39;SEISCIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 7 THEN &amp;#39;SETECIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 8 THEN &amp;#39;OCHOCIENTOS &amp;#39; + @lcCadena
      WHEN @lnCentenas = 9 THEN &amp;#39;NOVECIENTOS &amp;#39; + @lcCadena
      ELSE @lcCadena
    END /* CENTENAS */
	print @lcCadena
 
    -- Analizo los millares
    SELECT @lcCadena =
    CASE /* TERNA */
      WHEN @lnTerna = 1 THEN @lcCadena
      WHEN @lnTerna = 2 AND (@lnUnidades + @lnDecenas + @lnCentenas &amp;lt;&amp;gt; 0) THEN @lcCadena + &amp;#39; MIL &amp;#39;
      WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas &amp;lt;&amp;gt; 0) AND
        @lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0 THEN @lcCadena + &amp;#39; MILLON &amp;#39;
      WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas &amp;lt;&amp;gt; 0) AND
        NOT (@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0) THEN @lcCadena + &amp;#39; MILLONES &amp;#39;
      WHEN @lnTerna = 4 AND (@lnUnidades + @lnDecenas + @lnCentenas &amp;lt;&amp;gt; 0) THEN @lcCadena + &amp;#39; MIL MILLONES &amp;#39;
      ELSE &amp;#39;&amp;#39;
    END /* MILLARES */
	print @lcCadena
 
    -- Armo el retorno columna a columna
	--print @lcCadena
    SELECT @lcRetorno = @lcCadena + @lcRetorno
    SELECT @lnTerna = @lnTerna + 1
 
  END /* WHILE */
 
  IF @lnTerna = 1
    SELECT @lcRetorno = &amp;#39;CERO&amp;#39;
 
  SELECT RTRIM(@lcRetorno) + CASE WHEN LEN(LTRIM(STR(@lnFraccion,2))) = 1 THEN &amp;#39;0&amp;#39;+LTRIM(STR(@lnFraccion,2))
                                               ELSE LTRIM(STR(@lnFraccion,2)) END AS Texto
 
END

&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Los comentarios son bienvenidos, espero sea de ayuda, &lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202787" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/01/17/code-c-243-mo-convertir-un-n-250-mero-a-letras.aspx</link>
      <pubDate>Wed, 18 Jan 2012 02:02:00 GMT</pubDate>
    </item>
    <item>
      <title>Múltiples Líneas en los Textblock de Windows Phone 7</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/01/12/m-250-ltiples-l-237-neas-en-los-textblock-de-windows-phone-7.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;blockquote&gt;       &lt;p&gt;&lt;strong&gt;Nivel: Básico: 100.&lt;/strong&gt;&lt;/p&gt;        &lt;p&gt;También surgido de otra pregunta que me hicieron en &lt;a href="http://formspring.me/warnov"&gt;http://formspring.me/warnov&lt;/a&gt;, aquí una corta explicación de cómo funcionan los Texblock multilínea en WP7.&lt;/p&gt;        &lt;p&gt;Básicamente la duda de este developer, era cómo hacía para generar un Textblock (Texto no editable que aparece como nativo en la interfaz) que presentara varios párrafos. &lt;/p&gt;        &lt;p&gt;Lo primero que debemos garantizar, es que el TextBlock haga autoajuste de línea de acuerdo al ancho que tenga en determinado momento. Para esto ajustamos la propiedad de “ TextWrapping” en Wrap. Luego, existen varios métodos para agregar el texto que viene en párrafos. &lt;/p&gt;        &lt;p&gt;El primero, es aprovechando la mayor flexibilidad que nos da el editor XAML para asignar textos. Como ven, sencillamente podríamos traer nuestros párrafos tal y como están por ejemplo en Word o notepad y asignarlos al control:&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2185.image_5F00_2DCEA938.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4667.image_5F00_thumb_5F00_366F01C4.png" width="613" height="115" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;Como ven es un sencillo copy paste o escribir las líneas y darles el salto de línea donde sea pertinente.&lt;/p&gt;        &lt;p&gt;Este copy paste también se puede ejecutar en el cuadro de propiedades:&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1031.image_5F00_234DD518.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5153.image_5F00_thumb_5F00_70119BAE.png" width="640" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;Sin embargo si queremos escribir las líneas, observaremos que para darles un salto de línea el Enter no funciona. Sencillamente usamos Shift+Enter y listo. Tendremos nuestro salto de línea. Y el resultado es el esperado:&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1524.image_5F00_532876D9.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7801.image_5F00_thumb_5F00_06180741.png" width="249" height="460" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;Obviamente, este tipo de ajuste de contenido no es posible en tiempo de ejecución, ya que no podremos copiar/pegar de ningún lado, sino indicar con una variable el contenido. Esta variable es fácil de armar con el carácter especial de cambio de línea \n:&lt;/p&gt;        &lt;p&gt;&lt;font face="Consolas"&gt;txbInstructions.Text = &amp;quot;primera larga línea \n segunda \n tercera&amp;quot;;&lt;/font&gt;&lt;/p&gt;        &lt;p&gt;Esto nos da:&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7220.clip_5F00_image008_5F00_4BBC915F.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1537.clip_5F00_image008_5F00_thumb_5F00_3D11E57A.jpg" width="255" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;&lt;b&gt;Y qué pasa si el texto está en un archivo de recursos?&lt;/b&gt;&lt;/p&gt;        &lt;p&gt;En un mercado de aplicaciones como el de Windows Phone 7, es muy importante ofrecer la capacidad de multilenguaje de nuestras aplicaciones, así que es muy frecuente que nos encontremos con la necesidad de crear un archivo de recursos distinto para cada lenguaje a usar. En estos casos, cada archivo tiene los textos a usar. Entonces &lt;b&gt;cómo poner valores multilínea en los archivos de recursos?&lt;/b&gt;&lt;/p&gt;        &lt;p&gt;Allí también podemos copiar y pegar de otra fuente. Igual funciona el mecanismo de Shift+Enter para ingresar un salto de línea.&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6242.image_5F00_233DAF4B.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2045.image_5F00_thumb_5F00_2D22A0B6.png" width="615" height="233" /&gt;&amp;#160;&lt;/a&gt;&lt;/p&gt;     &lt;/blockquote&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10256107" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/01/12/m-250-ltiples-l-237-neas-en-los-textblock-de-windows-phone-7.aspx</link>
      <pubDate>Thu, 12 Jan 2012 22:09:37 GMT</pubDate>
    </item>
    <item>
      <title>Replicando una aplicación tradicional a Windows Azure I: Base de Datos</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/01/11/replicando-una-aplicaci-243-n-tradicional-a-windows-azure-i-base-de-datos.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;g:plusone size="small"&gt;&lt;/g:plusone&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;p&gt;&lt;strong&gt;ABSTRACT&lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;Esta es una serie de post en la que exploraremos las condiciones que deben tener las aplicaciones web para poderse ejecutar desde Windows Azure, bien sea porque se requiere hacer una migración, o porque se quiere tener las dos versiones (hosting tradicional y cloud computing) para una aplicación dada. Este es el post 1/3 y mira los aspectos esenciales a tener en cuenta en lo referido a bases de datos. Los siguientes dos hablarán de la capa de negocios, y de la interfaz gráfica como tal.1&lt;/p&gt;      &lt;p&gt;&lt;strong&gt;Nivel: 100-200 Básico&lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;El rango de opciones para tener una aplicación que se comporte igual de bien tanto en Windows Azure como en servidores tradicionales, depende mucho del tipo de aplicación que se tenga. En esta serie de posts, estaré tratando únicamente aplicaciones web (también en Azure se pueden desplegar servicios destinados a ser consumidos por clientes inteligentes, móviles, a través de TCP, etc).&lt;/p&gt;      &lt;p&gt;Las aplicaciones Web estándar, generalmente tienen la siguiente distribución: Una base de datos (Sql Server, Oracle, etc), una capa de acceso a datos (Entity Framework,LINQ2SQL, ADO.NET, Hibernate, etc) , una capa de negocio (uno o varios proyectos de tipo Class Library) y una capa de presentación conformada por WebForms.&lt;/p&gt;      &lt;p&gt;En este post específico, estaremos observando qué pasa primero con la base de datos:&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Base de datos&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;SQL Server&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Si la base de datos viene siendo SQL Server o alguna de sus variantes (Como SQL Compact, SQL Express, etc), nos encontraremos con el caso más sencillo a desplegar en Windows Azure, donde como saben el acceso es casi transparente para las aplicaciones que usan estas variaciones. &lt;/p&gt;      &lt;p&gt;Los temas que deberíamos tener en cuenta en este caso serían sobretodo aquellos que tienen que ver con escenarios muy específicos como:&lt;/p&gt;      &lt;p&gt;1. Consultas distribuidas (no son soportadas)&lt;/p&gt;      &lt;p&gt;2. Tamaño máximo por Base de datos de 150GB&lt;/p&gt;      &lt;p&gt;3. El escenario actual de SQL Azure está completamente enfocado a almacenamiento transaccional y reportería. No tenemos aún servidores de integración ni BI en SQL Azure. Solo OLAP y Reporting. Sin embargo esto no impide que servidores externos a Windows Azure puedan conectarse a las bases de datos de SQL Azure para manipular su información.&lt;/p&gt;      &lt;p&gt;4. La estructura interna e implementación física de SQL Azure es distinta a la de SQL Server; sin embargo para los clientes esto es totalmente transparente, pues SQL Azure ofrece la interfaz TDS que soporta perfectamente las cadenas de conexión tradicionales, así como el T-SQL que todos conocemos. De esta manera podremos acceder a la DB a través de ADO.NET, OLEDB, ORMs como NHibernate, LINQ, Entity Framework y muchos otros.&lt;/p&gt;      &lt;p&gt;Otros temas más fáciles de solucionar se pueden arreglar automáticamente a través del &lt;a href="http://sqlazuremw.codeplex.com/"&gt;Sql Azure Migration Wizard&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Otros Motores Free&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Si la base de datos se encuentra en otros motores free como MySql, tendremos una limitante total y es el hecho de que para poder instalar un MySQL en Windows Azure, es necesario usar el VM Role de Windows Azure, que permite crear una máquina virtual a la cual le adicionamos un disco duro virtual (VHD) que tiene la configuración previa que le hemos hecho. Esta configuración previa entonces puede incluir la instalación de MySQL por nuestra parte antes de agregar el VHD. Sin embargo, los VM Role son &lt;strong&gt;stateless&lt;/strong&gt;. Esto quiere decir que si por algún motivo la máquina ha de ser reiniciada, todos los cambios generados desde la distribución del VHD se perderían. Situación nada conveniente cuando se tiene la DB instalada en una instancia. En un ambiente de Web Roles y Worker Roles, esto no es un inconveniente, pues su única función es operar y no almacenar. El almacenamiento está en SQL Azure. Pero si en el VM Role ponemos una DB, con cada reinicio, aunque la DB aparezca instalada, estará restaurada a su condición inicial.        &lt;br /&gt;        &lt;br /&gt;Una de las próximas características que estaremos liberando en Windows Azure, son VM Roles persistentes que permitan instalar servidores de Sharepoint, Biztalk, y herramientas de terceros como MySQL y hasta otros sistemas operativos como Linux.&lt;/p&gt;      &lt;p&gt;Si se implementasen los VM Roles persistentes s instaláramos por ejemplo MySQL, tendríamos una complejidad adicional y estaríamos desperdiciando ciertas características de nuestra plataforma. &lt;/p&gt;      &lt;p&gt;Cuando tenemos un servidor como MySql, que es gratuito, no tendremos ningún problema en instalarlo en un VM Role de Windows Azure. Esto se logra haciendo una instalación del MySQL en una máquina virtual local, y luego subiendo el disco duro de esta máquina virtual a Windows Azure, donde quedará desplegada para ser accedida desde cualquier parte del mundo. Como se aprecia, ya de entrada hay una complejidad y es el proceso de preparar la máquina virtual y luego subirla a Windows Azure.&lt;/p&gt;      &lt;p&gt;Otros problemas se presentan cuando nuestra base de datos MySql comienza a requerir escalabilidad. Es así como si la máquina en la que habíamos instalado el MySql ya no es suficiente para los requerimientos de nuestros usuarios, habremos de entrar a una operación manual de migración hacia una máquina más grande.&lt;/p&gt;      &lt;p&gt;Sql Azure está diseñado para auto escalar los recursos que necesita, de acuerdo a la demanda por parte de los usuarios. Es así, como automáticamente se administra la memoria, discos, etc., para brindar un funcionamiento óptimo.&lt;/p&gt;      &lt;p&gt;Por otro lado, dado que la única opción para instalar MySql sería en un VMRole, entonces necesitaríamos entrar a ejecutar operaciones administrativas adicionales a las que requeriríamos si usáramos solo SQL Azure. En SQL Azure nos desentendemos de la administración del sistema operativo, sus parches, sus actualizaciones, etc. Solo nos enfocamos en usar y mejorar la base de datos. Pero el VM Role al estar más cerca a la Infraestructura como Servicio (IaaS) que a la Plataforma como Servicio (PaaS) requiere un trabajo manual que en SQL Azure se puede omitir completamente. &lt;/p&gt;      &lt;p&gt;Todo esto sin mencionar que no habría un SLA para la MySQL, mientras que para SQL Azure si hay y es de 99.99%&lt;/p&gt;      &lt;p&gt;&lt;i&gt;Recomendación: Migrar la DB a SQLAzure&lt;/i&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Otros motores no Free&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Otros motores no free, como Oracle se podrían instalar en Windows Azure, con las mismas consideraciones de los motores free. Pero adicionalmente le deberíamos sumar otra complejidad, y es que por lo general estos productos aún no tienen definida una licencia específica para ser instalados en esquemas de Cloud Computing como Windows Azure, por lo cual se podría entrar en conflictos legales al desplegar un servidor de estos en la nube. Primero ud. Debería consultar con su proveedor e investigar alrededor de este tema.&lt;/p&gt;      &lt;p&gt;&lt;i&gt;Recomendación: Migrar la DB a SQLAzure.&lt;/i&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Conclusión:&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Una aplicación web que se pueda desplegar fácilmente entre ambientes tradicionales y Windows Azure, debería emplear para su DB (si es que usa DB), un esquema SQL Server. Luego, en la evolución hacia la nube, este SQL Server debería migrarse a SQL Azure (las aplicaciones tradicionales se pueden poner a apuntar a la nube y seguirían funcionando perfectamente) y finalmente la aplicación como tal se pasaría de los servidores tradicionales a la nube, sin tener que hacer cambios sobre la DB. Recordemos que operaciones de Servicios de Integración de Datos, Análisis y Minería siguen estando disponibles a través de conexiones de servidores externos que tengan estas funcionalidades, a la nube.&lt;/p&gt;      &lt;p&gt;Este es el post 1/3 y mira los aspectos esenciales a tener en cuenta en lo referido a bases de datos. Los siguientes dos hablarán de la capa de negocio y de la interfaz gráfica como tal.&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10255673" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/01/11/replicando-una-aplicaci-243-n-tradicional-a-windows-azure-i-base-de-datos.aspx</link>
      <pubDate>Wed, 11 Jan 2012 20:07:47 GMT</pubDate>
    </item>
    <item>
      <title>Fallas en el despliegue remoto de aplicaciones al Emulador de Windows Azure</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2012/01/10/fallas-en-el-despliegue-remoto-de-aplicaciones-al-emulador-de-windows-azure.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;g:plusone size="small"&gt;&lt;/g:plusone&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;h3&gt;&lt;b&gt;Abstract: &lt;/b&gt;&lt;/h3&gt;      &lt;p&gt;En escenarios de testing, por ejemplo pruebas E2E, es necesario desplegar todo el ambiente en los llamados Builds Nocturnos, para verificar la completitud del sistema antes de pasarlo a producción. Las acciones requeridas generalmente se pueden automatizar, pero adquieren cierto nivel de complejidad cuando se trabaja con Windows Azure, en cuyo caso se requiere automatizar el despliegue sobre el Emulador en el cual se harán las pruebas. Esto presenta ciertos retos y aquí veremos cómo solucionarlos.&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Nivel: 400 – Avanzado&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;Dice la corresponsal que ya tenía su .bat con todos los &lt;a href="http://wappowershell.codeplex.com/"&gt;CmdLets&lt;/a&gt; de Windows Azure requeridos para su despliegue. Básicamente se requiere ejecutar las siguientes tareas:&lt;/p&gt;      &lt;p&gt;1. Apagar los emuladores del fabric y del storage de la máquina a operar        &lt;br /&gt;2. Remover todos los despliegues existentes         &lt;br /&gt;3. Inicializar ambos emuladores         &lt;br /&gt;4. Desplegar el servicio al emulador         &lt;br /&gt;5. Hacer un ping al servicio recién desplegado para verificar que quedó correctamente instalado.&lt;/p&gt;      &lt;p&gt;Me cuenta ella también que cuando entra a la máquina virtual de pruebas con su usuario y ejecuta el batch con las operaciones descritas anteriormente, este funciona correctamente y despliega los servicios sin ningún problema.&lt;/p&gt;      &lt;p&gt;Sin embargo, su objetivo es poder ejecutar el batch remotamente, en este caso a través de la herramienta psexec, que el gran Russinovich nos describe en este &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897553"&gt;post&lt;/a&gt;. Desafortunadamente para ella, cuando usa este tool observa que el proceso no es exitoso, aun usando los switch –w (para ejecutar el batch como system y usando –i para seleccionar el id de sesión activa. De hecho me cuenta que hasta usó msbuild para llamar el bat, sin éxito.&lt;/p&gt;      &lt;p&gt;&lt;b&gt;Solución:&lt;/b&gt;&lt;/p&gt;      &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg433001.aspx"&gt;CSRUN.EXE&lt;/a&gt; es un tool de la línea de comandos que se instala con el SDK de Windows Azure. Su función es la de desplegar una aplicación o servicio al emulador de Windows Azure y administrar el servicio allí hosteado. Obviamente vemos que en el ejercicio que se intentó llevar a cabo CSRUN es parte esencial. Desafortunadamente, este tool no funciona correctamente y aparecerá como bloqueado si no es lanzado por una sesión interactiva en la máquina donde se encuentra el emulador. Por eso es que a nuestra apreciada corresponsal su solución le funciona cuando hace login con su usuario, pero no sirve usando psexec. Siendo una buena idea poner el switch –i para identificar el Id de Sesión, esto no basta para que csrun pueda identificar completamente la sesión. Así que es necesario ajustar la variable de sesión &lt;b&gt;_DEVFABRIC_SESSIONID_&lt;/b&gt; con el id de la sesión en la que se está corriendo. Con esto, se solucionará el problema de inmediato, así que solo basta adicionar en el bat el código necesario para ajustar esta variable de sesión.&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10255274" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2012/01/10/fallas-en-el-despliegue-remoto-de-aplicaciones-al-emulador-de-windows-azure.aspx</link>
      <pubDate>Tue, 10 Jan 2012 20:41:10 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Llenado de Espacio en Datos (Generación de Datos Acumulados) por Grupos</title>
      <description>&lt;p&gt;&lt;strong&gt;Llenado de Espacio en Datos (Generaci&amp;oacute;n de Datos Acumulados) por Grupos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Normalmente los productos de software llevan un registro de los &lt;i&gt;hechos&lt;/i&gt; que se Fsentan en el negocio, ventas, desembolsos, cobros, intereses, etc. Pero por supuesto no todos los d&amp;iacute;as se vende, se desembolsa, se cobra initereses, c&amp;oacute;mo podemos resolver de una &lt;i&gt;eficiente&lt;/i&gt; la necesidad ver los datos acumulados, este escenario, por lo meno de manera parcial, fu&amp;eacute; resuelto en un art&amp;iacute;culo anterior &lt;a href="http://geeks.ms/blogs/fangarita/archive/2010/10/28/code-c-243-mo-calcular-un-total-acumulado-r-225-pido-sin-cursores.aspx"&gt;[Code] C&amp;oacute;mo calcular un total acumulado R&amp;aacute;pido SIN Cursores&lt;/a&gt;. Este art&amp;iacute;culo complementa esa soluci&amp;oacute;n presentando c&amp;oacute;mo se har&amp;iacute;a lo mismo para generar datos acumulados (o llenar espacios) teniendo en cuenta diferentes grupos dentro de los datos&lt;/p&gt;
&lt;p&gt;Tambi&amp;eacute;n se presentar&amp;aacute; una aplicaci&amp;oacute;n de otro art&amp;iacute;culo llamado &lt;a href="http://geeks.ms/blogs/fangarita/archive/2010/12/22/code-c-243-mo-generar-n-filas-r-225-pido-sql-server.aspx"&gt;[Code] C&amp;oacute;mo generar N Filas R&amp;aacute;pido Sql Server&lt;/a&gt; el cual se usar&amp;aacute; para generar los datos necesarios para llenar los espacios de la informaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;Datos de ejemplo&lt;/p&gt;
&lt;pre&gt;declare @hechos table (id int, fecha date, producto int, venta decimal)

insert into @hechos	values (1, &amp;#39;2011-09-01&amp;#39;, 1, 10)
insert into @hechos	values (2, &amp;#39;2011-09-03&amp;#39;, 1, 20)
insert into @hechos	values (3, &amp;#39;2011-09-04&amp;#39;, 1, 2)
insert into @hechos	values (4, &amp;#39;2011-09-08&amp;#39;, 1, 1)
insert into @hechos	values (5, &amp;#39;2011-09-10&amp;#39;, 1, 3)
insert into @hechos	values (6, &amp;#39;2011-09-12&amp;#39;, 1, 4)

insert into @hechos	values (7, &amp;#39;2011-09-01&amp;#39;, 2, 3)
insert into @hechos	values (8, &amp;#39;2011-09-03&amp;#39;, 2, 2)
insert into @hechos	values (9, &amp;#39;2011-09-04&amp;#39;, 2, 1)
insert into @hechos	values (10, &amp;#39;2011-09-08&amp;#39;, 2, 5)
insert into @hechos	values (11, &amp;#39;2011-09-10&amp;#39;, 2, 6)
insert into @hechos	values (12, &amp;#39;2011-09-12&amp;#39;, 2, 7)&lt;/pre&gt;
&lt;p&gt;Los datos en formato tabla:&lt;/p&gt;
&lt;table align="center" width="50%" cellpadding="0" cellspacing="0" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;Id&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;Fecha&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;Producto&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;Venta&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2011-09-01&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2011-09-03&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2011-09-04&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;2011-09-08&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;2011-09-10&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;2011-09-12&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2011-09-01&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2011-09-03&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;2011-09-04&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2011-09-08&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;2011-09-10&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;2011-09-12&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Observemos que las fechas de venta para cada producto no suceden en d&amp;iacute;as consecutivos, se tienen 2 diferentes productos a los que se quiere calcularle sus ventas acumuladas por d&amp;iacute;a y una cantidad de ventas&lt;/p&gt;
&lt;p&gt;Lo primero que haremos es calcular el n&amp;uacute;mero de d&amp;iacute;as de diferencia entre la mayor y menos fecha de toda la tabla (para todos los productos)&lt;/p&gt;
&lt;pre&gt;declare @FechaMin date, @FechaMax Date, @Diferencia int
select  @FechaMin = min(Fecha), @FechaMax = MAX(Fecha) from @hechos

set @Diferencia = DATEDIFF(dd,@FechaMin, @FechaMax)&lt;/pre&gt;
&lt;p&gt;Alternativamente podr&amp;iacute;amos crear una tabla que tenga la fecha m&amp;iacute;nima y m&amp;aacute;xima por cada producto, pero se presentar&amp;aacute; as&amp;iacute; para mantener simple el ejemplo.&lt;/p&gt;
&lt;p&gt;Pasos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se generea un CTE con una tabla que tiene todas las fechas posibles (incluso las que no est&amp;aacute;n en la tabla @hechos), llamado Fechas, El c&amp;oacute;digo de GenTable se encuentra en &lt;a href="http://geeks.ms/blogs/fangarita/archive/2010/12/22/code-c-243-mo-generar-n-filas-r-225-pido-sql-server.aspx"&gt;[Code] C&amp;oacute;mo generar N Filas R&amp;aacute;pido Sql Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tambi&amp;eacute;n se declara una tabla @Acumulado que tendr&amp;aacute; el resultado final con los valores acumulados por producto&lt;/li&gt;
&lt;li&gt;En el CTE ProductoFecha aplicamos una funci&amp;oacute;n de conjunto cross join para aplicar cada fecha generada a cada una de los productos de @hechos, lo que nos d&amp;aacute; como resultado todas las fechas posibles para cada producto&lt;/li&gt;
&lt;li&gt;Luego, se inserta en @Acumulado el resutaldo de hacer left join entre ProductoFecha (que tiene todas las fechas) y @Hechos lo que nos da, cada producto y cada fecha posible, en las fechas que no se realizaron ventas se agrega cero (0)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;declare @Acumulado table (fecha date, producto int, venta decimal, VentaAcumulada decimal)

;With Fechas (Fecha) as
(
select DATEADD(dd,GT.i,@FechaMin) Fecha from dbo.GenTable(0,@Diferencia,1) GT
)
, ProductoFecha (Producto, Fecha) as (
select distinct Producto, Fechas.Fecha from @hechos cross join Fechas
)
insert into @Acumulado (fecha, producto, venta, VentaAcumulada)
Select PF.Fecha, PF.Producto, isnull(H.Venta,0) as Ventas, 0  from ProductoFecha PF left join @hechos H ON PF.Producto = H.producto and PF.Fecha = h.fecha
&lt;/pre&gt;
&lt;p&gt;Ahora se procede a calcular el total acumulado por grupos:&lt;/p&gt;
&lt;pre&gt;declare @runningtotal decimal , @ProductoActual int

set @runningtotal = 0 
select @ProductoActual = 0 

--Anterior
update @Acumulado 
set 
@runningtotal = VentaAcumulada = case when not @ProductoActual = Producto then venta else 
case when Venta = 0 then @runningtotal else venta end
end
,@ProductoActual = Producto&lt;/pre&gt;
&lt;p&gt;La parte clave es donde se define el Producto actual por que permite la detecci&amp;oacute;n de cambio de grupos para generar as&amp;iacute; su acumulado, esta t&amp;eacute;cnica puede ser aplicada a m&amp;uacute;ltiples grupos, por ejemplo, ciudad - producto solo agregando otro grupo (para el caso del ejemplo ser&amp;iacute;a @ProductoActual) en el orden que se necesite y as&amp;iacute; generar todos los grupos necesarios&lt;/p&gt;
&lt;p&gt;Los resultados:&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;table align="center" width="50%" cellpadding="0" cellspacing="0" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;fecha&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;producto&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;venta&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;VentaAcumulada&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-01&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-02&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-03&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-04&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-05&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-06&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-07&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-08&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-09&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-10&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-11&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-01&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-02&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-03&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-04&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-05&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-06&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-07&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-08&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-09&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-10&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011-09-11&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Para que &amp;eacute;sta soluci&amp;oacute;n funcione, los datos deben estar previamente ordenados (por producto y fecha)&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda, &lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202648" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/01/08/code-llenado-de-espacio-en-datos-generaci-243-n-de-datos-acumulados-por-grupos.aspx</link>
      <pubDate>Sun, 08 Jan 2012 16:34:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Conteo de Filas de cada una de las tablas de la base de datos</title>
      <description>&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;&lt;strong&gt;Conteo de Filas de cada tabla&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Haciendo diagn&amp;oacute;stico de las bases de datos, realizando seguimientos al crecimiento del n&amp;uacute;mero de registros y en fin para conocer el n&amp;uacute;mero de registros en todas las tablas existen varias t&amp;eacute;cnicas pero existen unas mejores que otras y a contiuaci&amp;oacute;n se presentar&amp;aacute;n:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Una de las aproximaciones es usar uno de los procedimientos almacenados m&amp;aacute;s pr&amp;aacute;cticas que tiene TSql sp_MSforeachtable la cual nos permite ejecutar alg&amp;uacute;n tipo de instrucci&amp;oacute;n para cada una de las tablas de la base de datos, incluso admite filtros&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;exec sp_MSforeachtable &amp;#39;select &amp;#39;&amp;#39;?&amp;#39;&amp;#39; TableName, count(*) Cnt from ?&amp;#39;;&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;El asunto con esta soluci&amp;oacute;n es que se genera un resultset para cada una de las tablas (es decir, no es un solo resultado, sino uno por cada tabla) lo cual para cosas como un reporte son complicadas de manejar.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Entonces la siguiente aproximaci&amp;oacute;n ser&amp;iacute;a desarrollar un procedimiento almacenado que genere la consulta y luego la una y me presente un solo resultado, algo como:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;declare @tempTable table
(
    TableSchema nvarchar(256),
    TableName nvarchar(256),
    Cnt bigint
);

declare @sql nvarchar(4000);
declare @tableSchema nvarchar(256);
declare @tableName nvarchar(256);
declare @columnName sysname;
declare @cnt bigint;

declare tableCursor cursor for
    select TABLE_SCHEMA, TABLE_NAME from INFORMATION_SCHEMA.TABLES
    where TABLE_TYPE = &amp;#39;BASE TABLE&amp;#39;;

open tableCursor;

fetch next from tableCursor into @tableSchema, @tableName;

while @@FETCH_STATUS = 0
begin
    set @sql = &amp;#39;select @cnt = COUNT(*) from [&amp;#39; + @tableSchema + &amp;#39;].[&amp;#39; + @tableName + &amp;#39;]&amp;#39;;

    exec sp_executesql @sql, N&amp;#39;@cnt bigint output&amp;#39;, @cnt = @cnt output;

    insert into @tempTable select @tableSchema, @tableName, @cnt;

    fetch next from tableCursor into @tableSchema, @tableName;
end;

close tableCursor;
deallocate tableCursor;

select * from @tempTable;&lt;/pre&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Por supuesto esta soluci&amp;oacute;n tiene varios inconvenientes, para empezar usa un cursor para leer el listado de tablas de la consulta estandar INFORMATION_SCHEMA, segundo usa un sql din&amp;aacute;mico para armar poco a poco la consulta que se desea ejecutar y&amp;nbsp; algo que no se ve a simple vista y es la necesidad de ejecutar COUNT para cada una de las tablas, por lo cual &amp;eacute;sta no es la soluci&amp;oacute;n adecuada tampoco&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Ahora veremos c&amp;oacute;mo podemos encontrar el conteo y de paso saber cual es la tabla que cuenta con mayor cantidad de registros&lt;/span&gt;&lt;/p&gt;
&lt;table width="100%" cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="font-family:Arial;color:#ffffff;font-size:x-small;"&gt;Sql 2000&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="font-family:Arial;color:#ffffff;font-size:x-small;"&gt;Sql 2005+&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;pre&gt;SELECT OBJECT_NAME(id),rowcnt
FROM SYSINDEXES
WHERE OBJECTPROPERTY(id,&amp;rsquo;isUserTable&amp;rsquo;)=1 AND indid &amp;lt; 2
ORDER BY rowcnt DESC&lt;/pre&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;pre&gt;select sc.name +&amp;#39;.&amp;#39;+ ta.name
,sum(pa.rows) -- Valor aproximado
from sys.tables ta
inner join sys.partitions pa
on pa.object_id = ta.object_id
inner join sys.schemas sc
on ta.schema_id = sc.schema_id
where ta.is_ms_shipped = 0	AND pa.index_id IN (1,0)
group by sc.name,ta.name
ORDER BY sum(pa.rows) DESC&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:x-small;"&gt;Sql Server crea estad&amp;iacute;sticas para cada tabla lo que le permite optimizar las consultas que ejecutamos por lo que podemos usar estas estad&amp;iacute;sticas para obtener &amp;eacute;ste dato, tambi&amp;eacute;n, analizar la consulta, observamos que se tiene en cuenta si la tabla est&amp;aacute; particionada y asimismo se consideran los esquemas para que la informaci&amp;oacute;n quede completa&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda, &lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202626" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/01/05/code-conteo-de-filas-de-cada-una-de-las-tablas-de-la-base-de-datos.aspx</link>
      <pubDate>Fri, 06 Jan 2012 01:20:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Pivote dinámico con sql server</title>
      <description>&lt;p&gt;&lt;strong&gt;Pivotes Din&amp;aacute;micos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En muchas ocaciones tenemos informaci&amp;oacute;n en filas y queremos convertirlas en columnas, &amp;eacute;sto se presenta especialmente en escenarios de an&amp;aacute;lisis en donde tener la informaci&amp;oacute;n en colunas es un requerimiento. &lt;/p&gt;
&lt;p&gt;Revisemos el ejemplo que presenta &lt;a href="http://msdn.microsoft.com/es-co/library/ms177410.aspx"&gt;MSDN&lt;/a&gt; en su documentaci&amp;oacute;n&lt;/p&gt;
&lt;p&gt;Si tenemos una consulta:&lt;/p&gt;
&lt;pre&gt;USE AdventureWorks2008R2 ;
GO
SELECT DaysToManufacture, AVG(StandardCost) AS AverageCost 
FROM Production.Product
GROUP BY DaysToManufacture;
&amp;nbsp;
&lt;/pre&gt;
&lt;p&gt;La cual arroja los siguiente resultados&lt;/p&gt;
&lt;p&gt;
&lt;table width="100%" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;DaysToManufacture&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;AverageCost &lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a&gt;0&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a&gt;5.0885&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a&gt;1&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a&gt;223.88&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a&gt;2&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a&gt;359.1082&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;949.4105&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;y queremos verla en columnas&lt;/p&gt;
&lt;p&gt;
&lt;table width="100%" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;Cost_Sorted_By_Production_Days&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;0&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;1&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;2&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;3&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#000080"&gt;&lt;b&gt;&lt;span style="color:#ffffff;"&gt;4&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AverageCost&lt;/td&gt;
&lt;td&gt;5.0885&lt;/td&gt;
&lt;td&gt;223.88&lt;/td&gt;
&lt;td&gt;359.1082&lt;/td&gt;
&lt;td&gt;NULL&lt;/td&gt;
&lt;td&gt;949.4105&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;Debemos usar PIVOT&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;SELECT &amp;#39;AverageCost&amp;#39; AS
Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4]
FROM
(SELECT DaysToManufacture, StandardCost FROM Production.Product) AS SourceTable&lt;br /&gt;
PIVOT
(AVG(StandardCost)
FOR DaysToManufacture IN ([0], [1], [2], [3], [4])
) AS PivotTable;&lt;br /&gt;
&lt;/pre&gt;
&lt;p&gt;Revisando la sintaxis de la consulta tenemos que debemos definir una a una las columnas que deseamos obtener con la consulta y que &amp;eacute;stas correspondan al Valor que queremos poner en esa columna, es decir, para cero (0) d&amp;iacute;as de manufactura debemos crear una columan con el nombre 0 para que se asocie el valor que se tiene para esa columna, y se observa tambi&amp;eacute;n que se debe incluir una funci&amp;oacute;n de agregaci&amp;oacute;n para crear un contexto para cada celda en el momento de poner el valor en la columna, esto es clave para poder generar el pivote.&lt;/p&gt;
&lt;p&gt;Si se ha trabajado anteriormente con tablas din&amp;aacute;micas se ver&amp;aacute; que el comportamiento es similar tan solo debemos escribir nosotros mismos la consulta&lt;/p&gt;
&lt;p&gt;EN SQL 2000&lt;/p&gt;
&lt;p&gt;Ac&amp;aacute; tenemos una idea de c&amp;oacute;mo se podr&amp;iacute;a solucionar en Sql 2000, algunas de las funciones que se presentan en &amp;eacute;sta soluci&amp;oacute;n pronto ser&amp;aacute; descontinuadas en las futuras versiones de SQL &lt;/p&gt;
&lt;pre&gt;use AdventureWorks2008R2;
go

SELECT  
  [No. Sales per year]=CASE WHEN row IS NULL THEN &amp;#39;Sum&amp;#39;  
                   ELSE CONVERT(VARCHAR(80),[row]) END , 
  [1996] =SUM( CASE col WHEN &amp;#39;2005&amp;#39; THEN data ELSE 0 END ), 
  [1997] =SUM( CASE col WHEN &amp;#39;2006&amp;#39; THEN data ELSE 0 END ), 
  [1998] =SUM( CASE col WHEN &amp;#39;2007&amp;#39; THEN data ELSE 0 END ), 
  [Total]= SUM( data ) 
FROM  
   (SELECT [row]=P.firstname+&amp;#39; &amp;#39;+ P.lastname,  
           [col]=YEAR(SOH.OrderDate),  
           [data]=COUNT(*) 
    FROM Sales.SalesPerson SP INNER JOIN Sales.SalesOrderHeader SOH ON (SP.BusinessEntityID=SOH.SalesPersonID)  
    inner join HumanResources.Employee E ON SP.BusinessEntityID = E.BusinessEntityID 
    inner join Person.Person P ON E.BusinessEntityID = P.BusinessEntityID 
    GROUP BY P.firstname+&amp;#39; &amp;#39;+ P.lastname, YEAR(SOH.OrderDate) 
    )f 
GROUP BY row WITH ROLLUP 
ORDER BY GROUPING(row),total DESC
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;IDEAS&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Siempre que aprendemos algo se nos ocurren mas ideas, tales como: Qu&amp;eacute; pasa si se tienen d&amp;iacute;as de manufactura diferentes? qu&amp;eacute; pasa si quiero una columna para cada uno de esos d&amp;iacute;as, que pasa si lo hacemos por producto? por pais? qu&amp;eacute; pasa si cada uno de ellos tiene un comportamiento diferente?&lt;/p&gt;
&lt;p&gt;Muchas de esas preguntas se responden realizando un pivote con columnas din&amp;aacute;micas, es decir, al contrario de la sintaxis normal en donde debemos definir cada columna, que se interprete y de obtengan todas las columnas que necesito sin necesidad de definirlas una a una&lt;/p&gt;
&lt;p&gt;&lt;b&gt;CONSULTA DIN&amp;Aacute;MICA&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;use AdventureWorks2008R2;
go

declare @columnas varchar(max)

set @columnas = &amp;#39;&amp;#39;

select @columnas =  coalesce(@columnas + &amp;#39;[&amp;#39; + cast(DaysToManufacture as varchar(12)) + &amp;#39;],&amp;#39;, &amp;#39;&amp;#39;)
FROM (select distinct DaysToManufacture from Production.Product) as DTM

set @columnas = left(@columnas,LEN(@columnas)-1)

DECLARE @SQLString nvarchar(500);

set @SQLString = N&amp;#39;
SELECT *
FROM
(SELECT DaysToManufacture, StandardCost 
    FROM Production.Product) AS SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN (&amp;#39; + @columnas + &amp;#39;)
) AS PivotTable;&amp;#39;

EXECUTE sp_executesql @SQLString
&lt;/pre&gt;
&lt;p&gt;Pero esta soluci&amp;oacute;n tiene el inconveniente de tener que lidiar con consultas Ad-Hoc (Din&amp;aacute;micas) que asocian posibles problemas de seguridad y rendimiento a la soluci&amp;oacute;n, esta soluci&amp;oacute;n as&amp;iacute; como la dem&amp;aacute;s que se puedan implementar debe considerar d&amp;oacute;nde se van a usar, posiblemente sea mas eficiente realizar el pivote en reporting services (Matriz) que en Sql, esto debe evaluarse para cada y depende de lo que se quiera realizar&lt;/p&gt;
&lt;p&gt;&lt;b&gt;OPCION CTE - Nombres de columna din&amp;aacute;micos&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Para 2005 o superior existe una alternativa para facilitar, mas no soluciona del todo el problema y es crear una consulta que asigna valores (n&amp;uacute;meros a las columnas) facilitando la construcci&amp;oacute;n final de la consulta. En este caso queremos pivotear por el nombre del mes, pero supongamos que el rango que damos en la primera consulta cambia, entonces los nombre de las columnas (Nombre del mes) no podr&amp;iacute;an ser usados. &lt;/p&gt;
&lt;p&gt;Por ejemplo si enviamos como par&amp;aacute;metro el primero de agosto,&amp;nbsp; hasta el 31 de diciembre o si enviamos el 1 de enero al 30 de junio, tendr&amp;iacute;amos que cambiar constantemente la consulta o presentar todos los meses, para solucionar esto tenemos el siguiente ejemplo&lt;/p&gt;
&lt;pre&gt;use AdventureWorksDW2008R2;
go

;With monthyears as (
SELECT DISTINCT SpanishMonthName as CalendarMonthYearName, MonthNumberOfYear as MonthOfYear,CalendarYear
      FROM dbo.DimDate 
      WHERE DateKey &amp;gt; @FechaInicio AND DateKey &amp;lt; @FechaFinal
),
CalMonthYears AS
(
SELECT CalendarMonthYearName AS &amp;#39;CalendarMonthYearName&amp;#39;,
      MonthOfYear,
      CalendarYear,
      &lt;b&gt;ROW_NUMBER() OVER (ORDER BY CalendarYear DESC) AS &amp;#39;YearMonthNum&amp;#39;&lt;/b&gt;  
      FROM monthyears
)
SELECT ProductKey,
      [1],[2],[3],[4],[5],[6]
FROM
(
-- your query to get your data, pivot this data
SELECT YearMonthNum,s.ProductKey,
      SUM(OrderQuantity) AS &amp;#39;Quantity&amp;#39;
      FROM FactResellerSales s
      INNER JOIN dbo.DimDate d ON s.OrderDateKey = d.DateKey
      INNER JOIN CalMonthYears cmy ON d.SpanishMonthName = cmy.CalendarMonthYearName
GROUP BY YearMonthNum,s.ProductKey
) AS SourceTable
PIVOT
(
SUM(Quantity)
FOR YearMonthNum IN (
     &lt;b&gt; [1],[2],[3],[4],[5],[6]&lt;/b&gt;
      )
) AS PivotTable&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=202560" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2012/01/02/code-pivote-din-225-mico-con-sql-server.aspx</link>
      <pubDate>Mon, 02 Jan 2012 15:02:00 GMT</pubDate>
    </item>
    <item>
      <title>Del Agregado de Referencias en Visual Studio 2010</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2011/12/26/del-agregado-de-referencias-en-visual-studio-2010.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;!-- Place this tag where you want the +1 button to render --&gt;&lt;g:plusone size="small"&gt;&lt;/g:plusone&gt;&lt;!-- Place this render call where appropriate --&gt;&lt;script type="text/javascript"&gt;gapi.plusone.go();&lt;/script&gt;      &lt;p&gt;A través del tiempo, una de las tareas que siempre ha representado pérdidas innecesarias de tiempo al desarrollar, fue buscar en el mundo de componentes y dlls, aquella que estábamos buscando. Recuerdo que era todo un pain in the… (sí… allá) encontrar por ejemplo System.Windows.Forms.DataVisualization.Design. Empezando porque el cuadro de diálogo tardaba mucho en cargar. Segundo, desplazarse por las diversas listas, también tenía bastante delay.&lt;/p&gt;      &lt;p&gt;En Microsoft recibimos bastante feedback al respecto, y mejoramos mucho esos tiempos.&lt;/p&gt;      &lt;p&gt;Por si fuera poco, gracias a la extensión gratuita para Visual Studio llamada &lt;a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef"&gt;Productivity Power Tools&lt;/a&gt; ahora tenemos un cuadro de búsqueda de estos assemblies difíciles de encontrar a mano (ver campo resaltado en azul).&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5076.image_5F00_1E385702.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6253.image_5F00_thumb_5F00_7A4F7FA7.png" width="683" height="409" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Observarán ustedes queridos blog lectores, que también he resaltado un elemento en rojo? Lo habían visto?&lt;/p&gt;      &lt;p&gt;Este aviso solo aparece luego del &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=23691"&gt;SP1&lt;/a&gt; de Visual Studio 2010. No lo han instalado? Pues junto a las tools de productividad deberían instalarlas ya… en serio, ya!&lt;/p&gt;      &lt;p&gt;El aviso es una excelente cura a un mal bastante molesto que teníamos antes del Service Pack originado por la inclusión del .NET Framework Client Profile.&lt;/p&gt;      &lt;p&gt;Sucede que con Visual Studio 2008 SP1 se incluyó la posibilidad de desarrollar una aplicación orientada a este Client Profile, que no es más que un subconjunto de .Net mucho más pequeño que la versión completa.&lt;/p&gt;      &lt;p&gt;Esto, pensando que muchas veces codificamos aplicaciones de escritorio que no necesitan saber por ejemplo de ASP.NET para funcionar. Por ende, reducimos la cantidad de dependencias que requiere y por ende las máquinas en que instalemos nuestra aplicación no requerirán de todo el Framework .NET, sino de un subconjunto de este, que tan solo pesa 28MB y trae la mayoría de funciones básicas para una aplicación cliente de escritorio.&lt;/p&gt;      &lt;p&gt;En realidad es algo muy benéfico para la mayoría de casos, pero el problema es que por defecto, desde VS2008SP1 todos los proyectos de WinForms creados, quedan por defecto orientados al Client Profile, entonces cuando uno quería hacer algo avanzado, como por ejemplo una comunicación desde el Form a un servicio Web sencillo a través del Objeto WebClient, por más que buscara System.Net, no lo encontraba! De pronto a ud. Le pasó y se sintió muy frustrado de no saber por qué era. La razón, es que al estar el proyecto orientado al Client Profile, se filtran las dlls que aparecen en el cuadro de diálogo de agregar referencias y solo se muestran las de este perfil. Entonces la solución era cambiar el profije por ejemplo al Framework 4.0 completo, y ahí sí ya nos comenzaban a aparecer. Pero esta solución solo se hallaba solo después de dar muchas vueltas, “cacharrear” y buscar por todo lado. &lt;/p&gt;      &lt;p&gt;Ahora, con agrado les cuento que después del SP1 en VS2010, esta situación ya ha sido solucionada. Aunque por defecto igual, si escoge ud. desarrollar una aplicación de WinForms, esta estará orientada al Client Profile, ahora las DLLs no son filtradas, sino que aparecen en un color gris&amp;#160; especial que las identifica. Si ud. Llega a escoger una de estas DLLs, de inmediato le aparece el aviso que señalé en rojo! Así que esa es la razón de ser de ese aviso: Indicarnos que si escogemos esa dll, estaremos cambiando la orientación de nuestra aplicación desde Client Profile, a usar todo el Framework completo. Esto ya es totalmente intuitivo y no nos deja con la duda de por qué diablos no me aparece la dll que buscaba…&lt;/p&gt;      &lt;p&gt;Cuando cerramos el cuadro de diálogo, nos aparece esta confirmación que nos pregunta si en realidad queremos cambiar la orientación del proyecto. Si lo hacemos, todos los archivos abiertos del proyecto se cierran, y luego de esto casi que de inmediato, se produce el cambio, quedando nuestro proyecto listo para usar todo el poder del framework completo:&lt;/p&gt;      &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5670.clip_5F00_image003_5F00_65115432.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0383.clip_5F00_image003_5F00_thumb_5F00_037B951C.png" width="576" height="304" /&gt;&lt;/a&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10251069" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2011/12/26/del-agregado-de-referencias-en-visual-studio-2010.aspx</link>
      <pubDate>Mon, 26 Dec 2011 18:53:07 GMT</pubDate>
    </item>
    <item>
      <title>Paso a paso para instalar SQL Server 2012 Evaluation en Windows 7 SP1 (32 bits)</title>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://blogs.msdn.com/b/warnov/archive/2011/12/05/paso-a-paso-para-instalar-sql-server-2012-evaluation-en-windows-7-sp1-32-bits.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="line-height: 150%" align="justify"&gt;&lt;font size="3" face="Calibri"&gt; &lt;p align="justify"&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;font color="#000000"&gt;La versión 2012 de Sql Server ya está muy evolucionada. Nuestro servidor de Base de Datos ahora está ahora enfocado nativamente a trabajar con Cloud Computing y tiene unas mejoras que siempre hemos esperado y además sorpresas en su funcionamiento que nos hacen nuestro trabajo cada vez más fácil y agradable. &lt;/br&gt; &lt;/br&gt;La siguiente, es una guía de instalación de este producto que en su momento tuvo el nombre código Denali. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;font color="#000000"&gt;Ha sido preparada por un gran amigo muy querido por toda la audiencia técnica de Latinoamérica. Se trata de &lt;a href="http://mastergt68.wordpress.com/"&gt;Guillermo Taylor&lt;/a&gt;, quien muy amablemente me&amp;#160; ha permitido invitarle a postear su guía en mi blog. Guillermo es reconocido sobretodo por los IT Pros. Y es que SQL Server es una tecnología que une ambos mundos: Desarrollo y IT de una manera muy fluida. Es por esto que aprovecho este post, para anunciar el estreno del &lt;a href="http://blogs.technet.com/itprocol"&gt;blog para IT Pros Colombianos&lt;/a&gt;. Que estará tratando temas específicos de esta área y donde encontramos como regalo de bienvenida dos excelentes libros para IT Pros. Además, este post también estará allí, para que la audiencia de IT lo encuentre en un ambiente más especializado para ellos.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;font color="#000000"&gt;Sin más preámbulos, aquí los dejo con esta excelente guía.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;/font&gt;&lt;/div&gt; &lt;p align="justify"&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;/span&gt;&lt;span style="color: #4f81bd; font-size: 12pt"&gt;&lt;em&gt;Compilado por Guillermo Taylor para el evento &lt;a href="http://blogs.msdn.com/b/warnov/archive/2011/11/14/fin-de-a-241-o-con-camps-los-mejores-eventos-t-233-cnicos-de-microsoft-colombia.aspx"&gt;IT Camp 2011&lt;/a&gt; – Track SQL Server 2012 &lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h1&gt;Abstract&lt;/h1&gt;  &lt;p style="text-align: justify"&gt;Este documento recopila los pasos realizados para instalar SQL Server 2012 Evaluation en un sistema Windows 7 Ultimate SP1. Durante el paso a paso, se incluirán imágenes que aclararán mejor este; sin embargo no todos los pasos incluyen o tienen una imagen asociada, principalmente en donde estime que no es conveniente. De igual manera, no asumo responsabilidad alguna por algún paso realizado erróneamente o que no se tuvo en cuenta o que no aplica para un sistema operativo diferente. Por último, este documento se hace para efectos ilustrativos de cómo realizar una instalación del producto SQL Server 2012 Evaluation y de ninguna manera me compromete con los resultados obtenidos al seguirlo. &lt;/p&gt;  &lt;h1&gt;Pasos &lt;/h1&gt;  &lt;h1&gt;Configuración de IIS en Windows 7 &lt;/h1&gt;  &lt;p&gt;Antes de instalar y de configurar SQL Server 2012 y particularmente Reporting Services en un PC corriendo Windows 7 SP1, validé, particularmente por trabajo realizado en servidores, que tuviese al menos el Internet Information Server corriendo. &lt;/p&gt;  &lt;p&gt;Este es un servicio que generalmente no se habilita en desktops o laptops, pero que para efectos de lo que quiero hacer, tengo que activarlo. Para esto, hay dos maneras de hacerlo; la manual, que es la que describiré en este post y la automática, la cual contempla la instalación mediante Microsoft Web Platform Installer y que además permite instalar SQL Server Express y Visual Web Developer Express, entre otras herramientas. &lt;/p&gt;  &lt;p&gt;El método manual es el siguiente, solo para habilitar el IIS en Windows 7; &lt;span style="background-color: yellow"&gt;si ya lo tienen habilitado, sugiero no hacerlo&lt;/span&gt;. &lt;/p&gt;  &lt;p&gt;Primero, hay que abrir el panel de control de Windows 7: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image3.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5415.120611_5F00_0136_5F00_Pasoapasopa1.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Seleccionar la opción &amp;quot;Programs&amp;quot;: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image4.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7571.120611_5F00_0136_5F00_Pasoapasopa2.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Y dar clic en la opción &amp;quot;Turn Windows features on or off&amp;quot;, recordando que si no son administradores en esta máquina, ésta les pedirá que eleven los privilegios para ejecutar esta opción. &lt;/p&gt;  &lt;p&gt;La ventana que me apareció, puede ser diferente en su caso en cuanto a opciones habilitadas o no, fue ésta: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image5.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3683.120611_5F00_0136_5F00_Pasoapasopa3.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;A continuación, las opciones que se pueden habilitar: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0068.120611_5F00_0136_5F00_Pasoapasopa4.png" /&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify"&gt;En este punto, hago el popular disclaimer de &amp;quot;instalen lo que necesiten y si lo instalan todo, a mí no me echen la culpa si algo no funciona&amp;quot;. Si quieren saber qué hace alguna opción en particular, hagan &amp;quot;mouse hovering&amp;quot; sobre el elemento deseado y ahí les aparece un pequeño mensaje. Sin embargo, si les resalto lo que instalé en mi PC: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0576.120611_5F00_0136_5F00_Pasoapasopa5.png" /&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify"&gt;Luego de la selección de las características, fui a la parte inferior de la ventana y presioné el botón de OK. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image8.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3782.120611_5F00_0136_5F00_Pasoapasopa6.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify"&gt;Luego de algunos pocos minutos, sale el panel de control y IIS está instalado. Para validar que en efecto es así, abran una instancia de su navegador Internet y escriban en la barra de direcciones &lt;a href="http://localhost"&gt;http://localhost&lt;/a&gt;. Debe verse algo similar a: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image9.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4377.120611_5F00_0136_5F00_Pasoapasopa7.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify"&gt;Listo. Para abrir el IIS Manager, búsquenlo por la caja de búsqueda de Windows 7 ingresando inetmgr o Internet Information Services; yo no lo encontré en alguna de las opciones del menú Start, tal vez no busqué bien: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mastergt68.files.wordpress.com/2011/07/image10.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2642.120611_5F00_0136_5F00_Pasoapasopa8.png" /&gt;&lt;/a&gt;&lt;span style="font-family: times new roman; font-size: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;h2&gt;Instalación de SQL Server 2012 Evaluation &lt;/h2&gt;  &lt;p style="text-align: justify"&gt;A continuación, los pasos a seguir para instalar el producto. &lt;/p&gt;  &lt;p style="text-align: justify"&gt;Dirigirse a la ubicación del SQL Server 2012. &lt;/p&gt;  &lt;p style="text-align: justify"&gt;Ejecutar SETUP.EXE. Como estoy como usuario, voy a correr el archivo con privilegios elevados. Para ello, doy clic derecho sobre el programa SETUP.EXE y en las opciones que aparecen, selecciono &amp;quot;Run as administrator&amp;quot;. &lt;/p&gt;  &lt;p&gt;Aparece la siguiente ventana: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5381.120611_5F00_0136_5F00_Pasoapasopa9.png" /&gt; &lt;/p&gt;  &lt;p&gt;En el panel izquierdo, ir a &amp;quot;Installation&amp;quot; y dar clic en la opción &amp;quot;New SQL Server stand-alone installation or add features to an existing installation&amp;quot;: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0511.120611_5F00_0136_5F00_Pasoapasopa10.png" /&gt; &lt;/p&gt;  &lt;p&gt;Aparece la siguiente ventana: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5126.120611_5F00_0136_5F00_Pasoapasopa11.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar OK. Esperar que se procese la operación: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4237.120611_5F00_0136_5F00_Pasoapasopa12.png" /&gt; &lt;/p&gt;  &lt;p&gt;Para este RC, no hay actualizaciones… &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5226.120611_5F00_0136_5F00_Pasoapasopa13.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next para que aparezca la siguiente pantalla: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3187.120611_5F00_0136_5F00_Pasoapasopa14.png" /&gt; &lt;/p&gt;  &lt;p&gt;Como el Firewall está habilitado, sale ese aviso de precaución… Luego se indicará que hacer para que el Firewall esté debidamente configurado, sobre todo porque esta instalación contiene una instancia. Presionar Next para que aparezca esta pantalla: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1440.120611_5F00_0136_5F00_Pasoapasopa15.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next. &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3583.120611_5F00_0136_5F00_Pasoapasopa16.png" /&gt; &lt;/p&gt;  &lt;p&gt;En esta pantalla se deben aceptar los términos de licenciamiento. Es opcional lo de enviar utilización del producto hacia Microsoft. Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6758.120611_5F00_0136_5F00_Pasoapasopa17.png" /&gt; &lt;/p&gt;  &lt;p&gt;Seleccionar la primera opción, &amp;quot;SQL Server Feature Installation&amp;quot;. Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2047.120611_5F00_0136_5F00_Pasoapasopa18.png" /&gt; &lt;/p&gt;  &lt;p&gt;Las características a seleccionar son: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2553.120611_5F00_0136_5F00_Pasoapasopa19.png" /&gt; &lt;/p&gt;  &lt;p&gt;Si al presionar Next, les aparece esta pantalla: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6354.120611_5F00_0136_5F00_Pasoapasopa20.png" /&gt; &lt;/p&gt;  &lt;p&gt;Es porque esta versión de SQL Server requiere el SP1 de Visual Studio 2010; esto porque el encontró rastros de la instalación anterior, es decir la de CTP3. &lt;/p&gt;  &lt;p&gt;Así que instalen el SP1 de Visual Studio 2010 para continuar con la instalación… &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5102.120611_5F00_0136_5F00_Pasoapasopa21.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0336.120611_5F00_0136_5F00_Pasoapasopa22.png" /&gt; &lt;/p&gt;  &lt;p&gt;El nombre de la instancia es sugerido. Y particularmente generé una instancia porque tengo una instancia por omisión de SQL Server 2008 R2 SP1. &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5545.120611_5F00_0136_5F00_Pasoapasopa23.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next para que aparezca la pantalla de configuración del servidor &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7536.120611_5F00_0136_5F00_Pasoapasopa24.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2043.120611_5F00_0136_5F00_Pasoapasopa25.png" /&gt; &lt;/p&gt;  &lt;p&gt;Además de agregar la cuenta de instalación, agrego una de administración; esto porque como mejor práctica la cuenta de instalación no debe quedar registrada como administradora… De hecho, es muy probable que sea incluso una cuenta creada específicamente para dicho fin, por lo cual después se elimina… &lt;/p&gt;  &lt;p&gt;Se dejan los directorios de datos por omisión y se habilita FILESTREAM… &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1781.120611_5F00_0136_5F00_Pasoapasopa26.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/6661.120611_5F00_0136_5F00_Pasoapasopa27.png" /&gt; &lt;/p&gt;  &lt;p&gt;Seleccionar Multidimensional and Data Mining Mode… Y agregar las mismas cuentas de administración… &lt;/p&gt;  &lt;p&gt;Luego de presionar Next, aparece la pantalla de configuración de SSRS. Seleccionar la opción de instalar y configurar. &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7673.120611_5F00_0136_5F00_Pasoapasopa28.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/0652.120611_5F00_0136_5F00_Pasoapasopa29.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Next para que aparezca la pantalla de &amp;quot;Ready to Install&amp;quot;: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2705.120611_5F00_0136_5F00_Pasoapasopa30.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Install y esperar a que termine el proceso… &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8686.120611_5F00_0136_5F00_Pasoapasopa31.png" /&gt; &lt;/p&gt;  &lt;p&gt;Presionar Close. &lt;/p&gt;  &lt;p&gt;Ya en el menú principal del servidor, aparecen las opciones para ejecutar SQL Server 2012 RC0: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3487.120611_5F00_0136_5F00_Pasoapasopa32.png" /&gt; &lt;/p&gt;  &lt;p&gt;Al correr el SQL Server Management Studio, tal vez les aparezca esta opción si tienen configurado un SQL Server 2008 o 2008 R2, como es mi caso: &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3884.120611_5F00_0136_5F00_Pasoapasopa33.png" /&gt; &lt;/p&gt;  &lt;p&gt;Yo indiqué que no… &lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/8203.120611_5F00_0136_5F00_Pasoapasopa34.png" /&gt; &lt;/p&gt;  &lt;p&gt;Ahora bien, la instalación de las bases de datos de ejemplo para SQL Server 2012 no tiene el instalador al que nos acostumbramos para versiones anteriores, por lo menos no por ahora… Así que hay que descargar los archivos y adjuntarlos a mano; no es difícil si se siguen las instrucciones. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Descarguen el archivo AdventureWorks2008R2_Data.MDF desde &lt;a href="http://msftdbprodsamples.codeplex.com/releases/view/55330"&gt;http://msftdbprodsamples.codeplex.com/releases/view/55330&lt;/a&gt; y ubíquenlo en la carpeta de datos de SQL Server. Para mi caso, dicha carpeta es C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA. &lt;/li&gt;    &lt;li&gt;Ejecuten el siguiente código: &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;CREATE&lt;/span&gt; &lt;span style="color: blue"&gt;DATABASE&lt;/span&gt; &lt;span style="color: teal"&gt;AdventureWorks2008R2&lt;/span&gt; &lt;span style="color: blue"&gt;ON&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: gray"&gt;(&lt;span style="color: blue"&gt;FILENAME&lt;/span&gt; =&lt;/span&gt; &lt;span style="color: red"&gt;'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\AdventureWorks2008R2_Data.mdf'&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;FOR&lt;/span&gt; &lt;span style="color: blue"&gt;ATTACH_REBUILD_LOG&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;GO&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&amp;#160;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;No se preocupen si sale alguna advertencia… La base de datos queda creada y lista para usarse… &lt;/li&gt;    &lt;li&gt;Para la base de datos dimensional o base del DW o de la solución BI, AdventureWorksDWDenali_Data, descarguen el archivo desde la misma ubicación del punto 1 y sigan los mismos pasos. &lt;/li&gt;    &lt;li&gt;El código a ejecutar es el siguiente: &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;CREATE&lt;/span&gt; &lt;span style="color: blue"&gt;DATABASE&lt;/span&gt; &lt;span style="color: teal"&gt;AdventureWorksDWDenali&lt;/span&gt; &lt;span style="color: blue"&gt;ON&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: gray"&gt;(&lt;span style="color: blue"&gt;FILENAME&lt;/span&gt; =&lt;/span&gt; &lt;span style="color: red"&gt;'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\DATA\AdventureWorksDWDenali_Data.mdf'&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;FOR&lt;/span&gt; &lt;span style="color: blue"&gt;ATTACH_REBUILD_LOG&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 18pt"&gt;&lt;span style="font-family: consolas; font-size: 9pt"&gt;&lt;span style="color: blue"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10244462" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2011/12/05/paso-a-paso-para-instalar-sql-server-2012-evaluation-en-windows-7-sp1-32-bits.aspx</link>
      <pubDate>Tue, 06 Dec 2011 02:48:00 GMT</pubDate>
    </item>
    <item>
      <title>Fin de Año con Camps: Los mejores eventos técnicos de Microsoft Colombia!</title>
      <description>&lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/div&gt;  &lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/div&gt;  &lt;div style="line-height: 150%;" align="justify"&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;UPDATE: &lt;/strong&gt;Si quieres convertirte en un desarrollador WaW, te tengo esta &lt;a href="http://wowdev.blob.core.windows.net/waw/WaW.zip"&gt;herramienta&lt;/a&gt; que te ayudará a descargar todos los SDKs necesarios de una manera muy sencilla! &lt;/font&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;A llevarse a cabo en Medellín y Bogotá, estaremos ejecutando los Camps de Microsoft para 2011. Para todos hay! Es así como para los ITPROs, tenemos el ITCAMP y para desarrolladores, el Code Camp. &lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;IT CAMP (Para &lt;b&gt;IT Cloud Champs&lt;/b&gt;):&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Sql Server 2012 (Denali)      &lt;br /&gt;Private Cloud&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Fechas:&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Medellín: 29 de Noviembre. De 8am a 12.30pm      &lt;br /&gt;Bogotá: 6 de Diciembre de 2pm a 6pm.&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;CODE CAMP (Para desarrolladores &lt;b&gt;WAW&lt;/b&gt;)&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&lt;b&gt;W&lt;/b&gt;ebMatrix&lt;b&gt;       &lt;br /&gt;A&lt;/b&gt;zure       &lt;br /&gt;&lt;b&gt;W&lt;/b&gt;indows Phone 7&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Fechas:&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Medellín: 29 de Noviembre. De 8am a 12.30pm      &lt;br /&gt;Bogotá: 1 de Diciembre de 2pm a 6pm.&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Como observan, en Medellín, el evento se ejecutará el mismo día para ITPROS y Developers. Mientras en Bogotá, tendremos dos días separados.&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;Estando en una nueva era de alta integración con las comunidades, Microsoft Colombia ha recibido una invaluable ayuda de parte de las comunidades para poder realizar un evento de esta magnitud. Es así como se ha tenido el apoyo completo de las más grandes comunidades de desarrolladores y ITPROS del país, como lo son Avanet de Medellín y BNet junto con ITPROS DC de Bogotá, quienes han proporcionado gran parte de los speakers que estarán enriqueciendo los eventos.&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;De esta forma, tendremos una inigualable nómina de speakers; sin precedentes! todos ellos parte de nuestro programa de Microsoft Community Specialist (MCS) y varios de ellos ya reconocidos MVPs de nuestro país: &lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&lt;a href="http://blog.soreygarcia.me/"&gt;Sorey Gracía&lt;/a&gt; (WP7), &lt;a href="http://albertorivera.wordpress.com/"&gt;Alberto Rivera&lt;/a&gt; (Denali), &lt;a href="http://www.theregion.com/profile.aspx?rd=1056"&gt;Andrés Fontán&lt;/a&gt; (Azure), &lt;a href="https://www.facebook.com/khriztian/info?ref=ts"&gt;Christian Moreno&lt;/a&gt; (Denali), &lt;a href="http://www.danielvargasit.com/"&gt;Daniel Vargas&lt;/a&gt; (Private Cloud), &lt;a href="http://geeks.ms/blogs/fangarita/"&gt;Freddy Angarita&lt;/a&gt; (Denali), &lt;a href="http://gerardoramosun.wordpress.com/"&gt;Gerardo Ramos&lt;/a&gt; (Azure), &lt;a href="http://germanruizp.blogspot.com/"&gt;German Ruiz&lt;/a&gt; (Private Cloud), &lt;a href="http://mastergt68.wordpress.com/"&gt;Guillermo Taylor&lt;/a&gt; (Denali), &lt;a href="http://twitter.com/#!/hernandgr"&gt;Hernán Guzmán&lt;/a&gt; (WP7), &lt;a href="http://www.sqlgeek.net/"&gt;John Bocachica&lt;/a&gt; (Denali), &lt;a href="http://geeks.ms/blogs/johnbulla/"&gt;John Bulla&lt;/a&gt; (Denali), &lt;a href="http://juank.black-byte.com/"&gt;Juan Carlos Ruiz&lt;/a&gt; (WebMatrix) , &lt;a href="http://www.judavi.com/"&gt;Juan David Gómez&lt;/a&gt; (WebMatrix), &lt;a href="http://www.linkedin.com/profile/view?authType=name&amp;amp;locale=en_US&amp;amp;id=33937902&amp;amp;authToken=pmFi"&gt;Juan Manuel Lombana&lt;/a&gt; (Azure), &lt;a href="http://julitogtu.wordpress.com/"&gt;Julio Avellaneda&lt;/a&gt; (WebMatrix), &lt;a href="http://www.linkedin.com/profile/view?id=103457150&amp;amp;locale=en_US&amp;amp;trk=tyah"&gt;Miguel Mendoza&lt;/a&gt; (Azure), &lt;a href="http://arcdotnet.wordpress.com/"&gt;Miguel Quintero&lt;/a&gt; (WebMatrix), &lt;a href="http://www.linkedin.com/profile/view?id=93926766&amp;amp;locale=es_ES&amp;amp;trk=tyah2"&gt;Pavel Espitia&lt;/a&gt; (WP7), &lt;a href="http://www.linkedin.com/profile/view?id=9996040&amp;amp;locale=en_US&amp;amp;trk=tyah"&gt;Ricardo González&lt;/a&gt; (Azure), &lt;a href="http://vbcodigopocketpc.blogspot.com/"&gt;Roberto Alvarado&lt;/a&gt; (WP7), &lt;a href="http://geeks.ms/blogs/checho/"&gt;Sergio Calderón&lt;/a&gt; (Private Cloud).&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;A parte de tener los eventos presenciales, tendremos webcasts de Warm Up (o preparación para el evento presencial) que nos irán mostrando lo que veremos en el evento físico. Así que tanto para inscribirse a los eventos virtuales como a los eventos presenciales, solo tienen que hacer click en la imagen correspondiente al evento de su interés: Developers, o ITPROS:&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&lt;a href="http://www.microsoft.com/colombia/activa/codecamp/"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/5556.clip_5F00_image001_5F00_25701915.jpg" width="643" height="791" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&lt;a href="http://www.microsoft.com/colombia/activa/itcamp/"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4426.clip_5F00_image002_5F00_01DF3AE4.jpg" width="643" height="793" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;No se lo pierdan, aparte de estar actualizados con lo último de nuestras tecnologías, tendrán la oportunidad de ganar fabulosos premios de Microsoft Hardware!&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&amp;#160;&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt;    &lt;p style="line-height: 150%;" align="justify"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4010.image_5F00_3CD27F7B.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/4341.image_5F00_thumb_5F00_20354201.png" width="434" height="288" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;div style="line-height: 150%;" align="justify"&gt;&lt;/div&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10237097" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2011/11/14/fin-de-a-241-o-con-camps-los-mejores-eventos-t-233-cnicos-de-microsoft-colombia.aspx</link>
      <pubDate>Tue, 15 Nov 2011 02:25:57 GMT</pubDate>
    </item>
    <item>
      <title>The Kinect Effect</title>
      <description>&lt;p&gt;Empezó sólo como un sueño en el que el cuerpo sería el control…&lt;/p&gt;  &lt;p&gt;Pero nunca nos imaginamos que llegaríamos a este punto, en que rompimos el Guinness Record, cómo el aparato electrónico de consumidor final con ventas más rápidas en la historia: 8 millones de sensores vendidos en solo dos meses! Algo que una vez fue ciencia ficción (Minority Report), se convirtió en un fenómeno mundial.&lt;/p&gt;  &lt;p&gt;Casi inmediatamente después del lanzamiento de Kinect, aficionados y académicos de todo el mundo adoptaron las posibilidades que Kinect ofrecía, en unas formas inimaginables! Un API no oficial rápidamente apareció y luego aparece el SDK oficial no comercial de Microsoft, lo que nos llevó a observar aún más aplicaciones en áreas como la salud, rehabilitación, educación, seguridad y muchas más!&lt;/p&gt;  &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/T_QLguHvACs" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;Es esto todo?&lt;/p&gt;  &lt;p&gt;Claro que no!&lt;/p&gt;  &lt;p&gt;Para darle más combustible a la innovación e imaginación de tantas mentes brillantes que sacan provecho del Kinect, estaremos ofreciendo el programa comercial de Kinect para Windows al comenzar el siguiente año!&lt;/p&gt;  &lt;p&gt;Ya estamos trabajando con varias compañías alrededor de más de 20 países a través de 25 industrias distintas, recibiendo al día de hoy más de 200 aplicaciones que usan Kinect más allá de la XBOX 360! Entre estas compañías podemos contar a Toyota y Razorfish.&lt;/p&gt;  &lt;p&gt;Observemos la historia extendida de Kinect durante este primer año de vida:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Presspass/imagegallery/images/products/xbox/10-27-11RoyalBerkshire_page.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/7356.clip_5F00_image001_5F00_0685A1F1.jpg" width="548" height="310" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Rehabilitación:&lt;/b&gt; Pacientes de hospital británico son inducidos a “jugar” ciertos títulos de Kinect, dependiendo de la rehabilitación física que requieren.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Presspass/imagegallery/images/products/xbox/10-27-11Tedesys_page.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/1563.clip_5F00_image002_5F00_6D0D78E9.jpg" width="551" height="426" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En Cantabria España, ya hacen pilotos de cómo Kinect podría ser una valiosa herramienta en cirugías.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Presspass/imagegallery/images/products/xbox/06-16-11KinectSDK_page.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3036.clip_5F00_image003_5F00_6A181436.jpg" width="557" height="373" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Estos estudiantes muestran en el Code Camp de Redmond cómo controlan un cuadracóptero a través de gestos y Kinect.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Presspass/imagegallery/images/products/xbox/06-16-11TechFest_page.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/2860.clip_5F00_image004_5F00_28312EE8.jpg" width="564" height="377" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Exploración espacial a través del WorldWide Telescope y Kinect&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/Presspass/imagegallery/images/products/xbox/event_04-13MIX11_page.jpg"&gt;&lt;img style="display: inline; background-image: none;" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-28-02-metablogapi/3531.clip_5F00_image005_5F00_11FB1396.jpg" width="563" height="377" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esta demostración hecha en Abril en el MIX11, nos muestra cómo podemos conducir una silla, a través de Kinect. Un gran invento para discapacitados.&lt;/p&gt;  &lt;p&gt;El Kinect Effect naturalmente nos ha llevado a concluir que son más poderosas las ideas nuestras cuando se suman al ingenio de los demás; Bill Gates nos dijo una vez: “Siempre sobreestimamos los cambios que ocurrirán en los siguientes dos años, pero subestimamos los que ocurrirán en los siguientes diez”. Hasta ahora solo ha pasado un año desde el lanzamiento de Kinect… no están ansiosos de ver lo que pase en los siguientes 9?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10232586" width="1" height="1"&gt;</description>
      <link>http://blogs.msdn.com/b/warnov/archive/2011/11/02/the-kinect-effect.aspx</link>
      <pubDate>Wed, 02 Nov 2011 18:11:22 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] Visual Studio 11 Architecture Tooling Guidance</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0" width="835"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="545"&gt;         &lt;br /&gt;On Thursday October 13, 2011 was made the kick-off meeting of this project&amp;#39;s update as part of our Visual Studio 2011 Readiness initiative. Our motivation and vision of this project is provide a practical guidance for Architecture Tooling for developers based on real world guidance from PG SMEs and VSTS Rangers to help customers successfully adopt the new features.           &lt;br /&gt;          &lt;br /&gt;&lt;strong&gt;&lt;font color="#333333" size="3"&gt;Talking about history, motivations and whys&lt;/font&gt;&lt;/strong&gt;           &lt;br /&gt;          &lt;p&gt;We &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2009/11/16/rangers-visual-studio-2010-architect-edition-guidance-kickoff.aspx"&gt;start&lt;/a&gt; the architecture tooling guidance November 16, 2009 providing a practical guidance to help you address challenges such as: How the new Visual Studio 2010 Ultimate tools….&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;can help me of way to successfully building a new system? &lt;/li&gt;            &lt;li&gt;can help me to understand (parts of) the existing system to be able to maintain or extend it? &lt;/li&gt;            &lt;li&gt;can help me to understand (parts of) the existing system to be able to tell something about its quality? &lt;/li&gt;            &lt;li&gt;can help me to validate a system architecture? &lt;/li&gt;            &lt;li&gt;can help me to establish traceability? &lt;/li&gt;            &lt;li&gt;can help me to create a reusable (repeatable) architecture? &lt;/li&gt;         &lt;/ul&gt;          &lt;blockquote&gt;           &lt;p&gt;&lt;em&gt;&lt;a href="http://vsarchitectureguide.codeplex.com/"&gt;… Our Answer: Practical guidance for Visual Studio 2010 Ultimate, focused on modeling tools. The First release included common usage scenarios, hands on labs, and lessons learnt in-the-field from the communities.&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;            &lt;p&gt;&lt;em&gt;The actual Core Scenarios for Visual Studio 2010 are…&lt;/em&gt;&lt;/p&gt;            &lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS2010ARCGUIDANCECommonScenarios_5F00_39F50D1A.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="VS2010ARCGUIDANCECommonScenarios" border="0" alt="VS2010ARCGUIDANCECommonScenarios" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VS2010ARCGUIDANCECommonScenarios_5F00_thumb_5F00_7584F60D.png" width="426" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;            &lt;p&gt;&lt;em&gt;… Community answer: Great job guys!!! &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/wlEmoticon_2D00_smile_5F00_728F915A.png" /&gt;&lt;/em&gt;&lt;/p&gt;         &lt;/blockquote&gt;          &lt;p&gt;and other questions and needs as:&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;Visual Studio 2010 ultimate include some new UML designers and others new features as architecture explorer and dependency graphs.. Which is the sequence of use for each scenario?&lt;em&gt; … Our Answer: Don’t worry, we made this guidance thinking of you and your needs, the scenarios include workflows to help you fully work the new features of Visual Studio 2010 Ultimate.&lt;/em&gt; &lt;/li&gt;            &lt;li&gt;How can I extend Visual Studio Ultimate tools?&lt;em&gt;&amp;#160; …Our Answer: Include extensibility HOLs.&lt;/em&gt; &lt;/li&gt;            &lt;li&gt;The guidance and HOL it’s ok but I wish the architecture guidance integrated with Visual Studio IDE&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;em&gt;… Our Answer: The Architecture Tooling Guidance, this mean… using feature builder integrate Visual Studio IDE with the guidance, HOL docs and the automation of some VS commands from the HOLs. &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/wlEmoticon_2D00_smile_5F00_728F915A.png" /&gt;&lt;/em&gt;&amp;#160; &lt;/li&gt;            &lt;li&gt;I wish that the guidance include some common architecture types&amp;#160;&amp;#160; &lt;em&gt;…Our Answer: include project templates into &lt;/em&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/082f8986-bad1-4d1b-9531-57fdcf598526"&gt;&lt;em&gt;architecture guidance extension&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; &lt;/li&gt;            &lt;li&gt;I wish visual support for navigate and understand the guidance &lt;em&gt;… Our Answer: &lt;/em&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/03/vs-alm-rangers-visual-studio-tooling-guidance-videos.aspx"&gt;&lt;em&gt;Create videos and publish to play online and offline&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; &lt;/li&gt;            &lt;li&gt;Yo hablo español… existe una guía que me muestre cómo utilizar las nuevas herramientas de modelamiento incluidas en Visual Studio Ultimate? &lt;em&gt;… Nuestra respuesta: &lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/02/vs-alm-rangers-gu-237-a-de-arquitectura.aspx"&gt;Visual Studio 2010 - Guía de Arquitectura&lt;/a&gt;. The spanish localized guidance&lt;/em&gt;. &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;Now… I would like to understand the changes ( new features, updates, etc) of Dev11 on the Visual Studio ALM architecture tooling…. For answer that let me show you the epics in which we will be working….&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;The “Epics”&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;Epic: As Alex, the technology consultant, I would like to understand the changes ( new features, updates, etc) of Dev11 on the Visual Studio ALM architecture tooling. &lt;/li&gt;            &lt;li&gt;Epic: As Garry, the dev lead, I would like practical guidance on how to customize DGML graphs. &lt;/li&gt;            &lt;li&gt;Epic: As Garry, the dev lead, I would like to link elements to slides, Word, files, diagrams, and the new storyboards. &lt;/li&gt;            &lt;li&gt;Epic: As Garry, the dev lead, I would like to exchange UML diagrams created with Visual Studio with other vendor tooling. &lt;/li&gt;            &lt;li&gt;Epic: As Garry, the dev lead, I would like to use the architecture tooling to design my Windows Phone solution. &lt;/li&gt;            &lt;li&gt;Epic: As Garry, the dev lead, I would like to use DSLs for generate program code, configuration files, and other artifacts. &lt;/li&gt;            &lt;li&gt;&lt;font color="#ff0000"&gt;Epic: Update RangersArchitectureGuidance.vsix&lt;/font&gt; &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;Why the last epic in &lt;strong&gt;&lt;font color="#ff0000"&gt;red&lt;/font&gt;&lt;/strong&gt;?? It is currently de-prioritised for an second release of the Visual Studio 11 Readiness, because we have a dependency on Feature Builder, which is not yet available for Visual Studio 11. &lt;/p&gt;          &lt;p&gt;&lt;em&gt;&lt;strong&gt;What you mean with epics? Who is Alex and Garry?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Question_5F00_72235E65.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Question" border="0" alt="Question" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Question_5F00_thumb_5F00_4F12ECF5.jpg" width="139" height="130" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;Epics define the value proposition, elevator pitch and the team collaboration story. In essence it is an intent container for product backlog items and associated tasks.&lt;/p&gt;          &lt;p&gt;&lt;em&gt;understood and what about Alex and Garry? &lt;/em&gt;&lt;/p&gt;          &lt;p&gt;Personas which we have defined and are using so far.&amp;#160; &lt;/p&gt;          &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/11/04/requirements-management-for-ranger-projects-epics-team-and-personas.aspx"&gt;You can find more about epics, team and personas in Willy’s Cave&lt;/a&gt;.&lt;/p&gt;          &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;The Deliverables&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;The planned deliverables for the Release 1 of this update are:&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;Guidance Document &lt;/li&gt;            &lt;li&gt;HOL Documents &lt;/li&gt;            &lt;li&gt;HOL package &lt;/li&gt;            &lt;li&gt;Quick Reference Poster &lt;/li&gt;            &lt;li&gt;Videos &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Questions or Feedback&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;Please post your questions or feedback using comments of this post.&lt;/p&gt;          &lt;p&gt;&lt;em&gt;&lt;strong&gt;wait.. Willy and I have a question for you!…&lt;/strong&gt;&lt;/em&gt; &lt;/p&gt;          &lt;p&gt;How important is &lt;a href="http://visualstudiogallery.msdn.microsoft.com/082f8986-bad1-4d1b-9531-57fdcf598526"&gt;guidance extension&lt;/a&gt; to you? Is it acceptable that we have beamed it down the priority list to v2? Your candid feedback will be most appreciated!&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="288"&gt;&lt;a&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="ABE" border="0" alt="ABE" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ABE_5F00_thumb_5F00_3F3DB689.jpg" width="164" height="244" /&gt;             &lt;p align="center"&gt;&lt;/p&gt;           &lt;em&gt;… African Black Eagle, from &lt;/em&gt;&lt;/a&gt;&lt;a href="http://birdsofprey.co.za/"&gt;&lt;em&gt;http://birdsofprey.co.za/&lt;/em&gt;&lt;/a&gt;           &lt;br /&gt;&lt;/a&gt;          &lt;table border="1" cellspacing="1" cellpadding="1" width="284"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="78"&gt;&lt;strong&gt;&lt;font size="2"&gt;The Team&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;                &lt;td valign="top" width="201"&gt;                 &lt;p&gt;Jean-Marc Prieur                    &lt;br /&gt;&lt;strong&gt;&lt;em&gt;Product Owner&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;                  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/09/17/introducing-the-visual-studio-alm-rangers-francisco-fagas.aspx"&gt;Francisco Fagas&lt;/a&gt;                     &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Project Lead&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/07/12/introducing-the-visual-studio-alm-rangers-larry-guger.aspx"&gt;Larry Guger&lt;/a&gt;                     &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Subject Matter Expert (SME)&lt;/strong&gt;&lt;/em&gt;                     &lt;br /&gt;Larry is a Product Manager on the Visual Studio Ultimate team. He comes from a background in consulting to Enterprise customers helping them develop robust applications using Microsoft technologies and Agile development practices.&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/10/20/introducing-the-visual-studio-alm-rangers-willy-peter-schaub.aspx"&gt;Willy-Peter Schaub&lt;/a&gt;                     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;Mentor, Support&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/06/24/introducing-the-visual-studio-alm-rangers-brian-blackman.aspx"&gt;Brian Blackman&lt;/a&gt;                     &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Ruck Master&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;                  &lt;p&gt;Gaurav Aggarwal                    &lt;br /&gt;&lt;strong&gt;&lt;em&gt;Contributor&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;David A. Clark                    &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Contributor&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;                  &lt;p&gt;Raul Guerrero Carreon                    &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Contributor&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/12/13/introducing-the-visual-studio-alm-rangers-eric-golpe.aspx"&gt;Eric Golpe&lt;/a&gt;                     &lt;br /&gt;&lt;em&gt;&lt;strong&gt;Contributor&lt;/strong&gt;&lt;/em&gt;                     &lt;br /&gt;Eric Golpe is a Senior Consultant with Microsoft Consulting Services. He is a cloud-computing subject matter expert with our Enterprise Strategy Worldwide Windows Azure Team, focusing on implementing large-scale cloud architectures with our Microsoft customers                     &lt;br /&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;              &lt;tr&gt;               &lt;td valign="top" width="78"&gt;&lt;font size="2"&gt;&lt;strong&gt;The Process&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;                &lt;td valign="top" width="201"&gt;Ruck…&amp;#160; What is Ruck??…                  &lt;br /&gt;                  &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Question_5F00_34D283D1.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Question" border="0" alt="Question" align="left" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Question_5F00_thumb_5F00_667D7B59.jpg" width="86" height="80" /&gt;&lt;/a&gt;                   &lt;br /&gt;                  &lt;br /&gt;&amp;#160;&amp;#160; &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/09/17/agile-scrum-ruck-transforming-the-rangers-ecosystem.aspx"&gt;Willy already answered&lt;/a&gt;.                   &lt;br /&gt;&lt;/td&gt;             &lt;/tr&gt;              &lt;tr&gt;               &lt;td valign="top" width="78"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/TOC_5F00_692C3B76.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="TOC" border="0" alt="TOC" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/TOC_5F00_thumb_5F00_4CAF4996.png" width="28" height="28" /&gt;&lt;/a&gt;&lt;/td&gt;                &lt;td valign="top" width="201"&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/06/09/toc-architecture-tooling-guidance.aspx"&gt;TOC: Visual Studio Tooling Guidance&lt;/a&gt;&lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=201267" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/10/20/vs-alm-rangers-visual-studio-11-architecture-tooling-guidance.aspx</link>
      <pubDate>Thu, 20 Oct 2011 04:15:02 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Calcular Edad a cualquier fecha</title>
      <description>&lt;p&gt;Este problema normalmente se soluciona del lado del cliente (Reporte, Aplicaci&amp;oacute;n) pero algunas ocaciones necesitamos presentarlo en algunas consultas por lo que la siguiente funci&amp;oacute;n puede ser pr&amp;aacute;ctica en varios escenarios&lt;/p&gt;
&lt;p&gt;Tomemos como ejemplo las siguientes fechas (obs&amp;eacute;rvese especialmente la &amp;uacute;ltima fecha que muestra el n&amp;uacute;mero de d&amp;iacute;a siguiente, diez a&amp;ntilde;os) y veamos c&amp;oacute;mo las funciones tradicionales muestran la diferencia en a&amp;ntilde;os, pero el c&amp;aacute;lculo no es correcto para la edad del usuario, incluso en la segunda aproximaci&amp;oacute;n tratando de solucionarlo por meses tampoco obtenemos el resultado esperado.&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;declare &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;@Fechas &lt;span style="color:#0000ff;"&gt;table &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;FechaNacimiento &lt;span style="color:#0000ff;"&gt;date&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @hoy &lt;span style="color:#0000ff;"&gt;date&lt;br /&gt;set&lt;/span&gt; @hoy &lt;span style="color:#808080;"&gt;=&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;GETDATE&lt;/span&gt;&lt;span style="color:#808080;"&gt;()&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @Fechas &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;1978-05-20&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @Fechas &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&amp;#39;1963-01-14&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @Fechas &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;DATEADD&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;yyyy&lt;span style="color:#808080;"&gt;,-&lt;/span&gt;10&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;DATEADD&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;dd&lt;span style="color:#808080;"&gt;,&lt;/span&gt;1&lt;span style="color:#808080;"&gt;,&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;select&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style="color:#808080;"&gt;*&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @Fechas &lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;select &lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;yyyy&lt;span style="color:#808080;"&gt;,&lt;/span&gt;FechaNacimiento&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @hoy&lt;span style="color:#808080;"&gt;),&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;cast&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;mm&lt;span style="color:#808080;"&gt;,&lt;/span&gt; FechaNacimiento&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;decimal&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;/&lt;/span&gt; 12 &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @Fechas&lt;/p&gt;
&lt;p&gt;Obtendremos resultados como (dependiendo de la fecha en que se ejecute el script, dado que toma la fecha actual del sistema):&lt;/p&gt;
&lt;p&gt;
&lt;table width="100%" border="0" style="BORDER-COLLAPSE:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#808080"&gt;&lt;b&gt;Edad Esperada&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#808080"&gt;&lt;b&gt;Diferencia A&amp;ntilde;os&lt;/b&gt;&lt;/td&gt;
&lt;td bgcolor="#808080"&gt;&lt;b&gt;Diferencia Meses&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;33.416666&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;48&lt;/td&gt;
&lt;td&gt;48.750000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;10.000000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;Ahora la soluci&amp;oacute;n propuesta para &amp;eacute;ste problema es crear una funci&amp;oacute;n que lo resuelva retornando el valor adecuado, incluso para fechas diferentes a la actual (se puede enviar como par&amp;aacute;metro la fecha a la que quiero calcular la edad)&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt; &lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;create&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; ObtenerEdad&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento &lt;span style="color:#0000ff;"&gt;date&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @AFecha &lt;span style="color:#0000ff;"&gt;date&lt;/span&gt; &lt;span style="color:#808080;"&gt;=&lt;/span&gt; &lt;span style="color:#808080;"&gt;null)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;returns&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;br /&gt;Begin&lt;br /&gt;&lt;br /&gt;declare&lt;/span&gt; @hoy &lt;span style="color:#0000ff;"&gt;date&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @Edad &lt;span style="color:#0000ff;"&gt;int&lt;br /&gt;if&lt;/span&gt; @hoy &lt;span style="color:#808080;"&gt;is&lt;/span&gt; &lt;span style="color:#808080;"&gt;null&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @hoy &lt;span style="color:#808080;"&gt;=&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;GETDATE&lt;/span&gt;&lt;span style="color:#808080;"&gt;()&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @hoy &lt;span style="color:#808080;"&gt;=&lt;/span&gt; @AFecha&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;set&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;@Edad &lt;span style="color:#808080;"&gt;=&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CASE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;MONTH&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;MONTH&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;br /&gt;&lt;span style="color:#808080;"&gt;&amp;nbsp;-&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;-&lt;/span&gt; 1&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;WHEN&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;MONTH&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;=&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;MONTH&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color:#808080;"&gt;&amp;nbsp;AND&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;DAY&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;DAY&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;THEN&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;-&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;br /&gt;&lt;span style="color:#808080;"&gt;&amp;nbsp;-&lt;/span&gt; 1 &lt;span style="color:#0000ff;"&gt;ELSE&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;-&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;YEAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;@FechaNacimiento&lt;span style="color:#808080;"&gt;) &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;END&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; @Edad&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;go&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/span&gt;Si intento de nuevo con los valores ingresados inicialmente obtenendr&amp;eacute; la edad correcta en cada caso &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;select &lt;/span&gt;dbo&lt;span style="color:#808080;"&gt;.&lt;/span&gt;ObtenerEdad&lt;span style="color:#808080;"&gt;(&lt;/span&gt;FechaNacimiento&lt;span style="color:#808080;"&gt;) as Edad, &lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;yyyy&lt;span style="color:#808080;"&gt;,&lt;/span&gt;FechaNacimiento&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @hoy&lt;span style="color:#808080;"&gt;),&lt;/span&gt; &lt;span style="color:#ff00ff;"&gt;cast&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;mm&lt;span style="color:#808080;"&gt;,&lt;/span&gt; FechaNacimiento&lt;span style="color:#808080;"&gt;,&lt;/span&gt; @hoy&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;decimal&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;/span&gt; &lt;span style="color:#808080;"&gt;/&lt;/span&gt; 12&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @Fechas&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-size:x-small;"&gt;Espero sea de ayuda,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200980" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/10/03/code-calcular-edad-a-cualquier-fecha.aspx</link>
      <pubDate>Tue, 04 Oct 2011 00:36:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo numerar filas en SSIS</title>
      <description>&lt;p&gt;Numerar Filas puede ser de gran ayuda para crear l&amp;oacute;gica en SSIS, para generarlas se pueden seguir los siguientes pasos&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Agregar un DataFLow Task&lt;/li&gt;
&lt;li&gt;Agregar un Origen de datos con una consulta a la que le queramos generar los n&amp;uacute;meros de fila&lt;/li&gt;
&lt;li&gt;Agregar un Script Component Agregar una Columna de Salida Llamada (para el ejemplo) &lt;em&gt;Numero&lt;/em&gt;, con un c&amp;oacute;digo similar al presentado a continuaci&amp;oacute;n:&lt;br /&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;
&lt;p&gt;public&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;ScriptMain&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; : &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;UserComponent&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; _RowNumber = 0;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;override&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; Input0_ProcessInputRow(&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Input0Buffer&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; Row)&lt;br /&gt;{&lt;br /&gt;_RowNumber++;&lt;br /&gt;Row.Numero1 = _RowNumber;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;El c&amp;oacute;diigo generar&amp;aacute; el n&amp;uacute;mero de fila de acuerdo al ordenamiento actual&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Se podr&amp;aacute; repetir el paso 3 para agregar el n&amp;uacute;mero de ordenamientos que sea necesario&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Se agrega un paquete de ejemplo para realizar &amp;eacute;sta tarea y como parte del ejemplo se distribuyen los productos en pares e impares &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Espero sea de ayuda,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&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=200752" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/09/26/code-c-243-mo-numerar-filas-en-ssis.aspx</link>
      <pubDate>Mon, 26 Sep 2011 20:19:00 GMT</pubDate>
    </item>
    <item>
      <title>Windows Developer Preview downloads</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para los desarrolladores que desean empezar a probar el desarrollo sobre windows 8 pueden acceder al siguiente link para descargar el preview de windows 8 para desarrolladores: &lt;a title="http://msdn.microsoft.com/en-us/windows/apps/br229516" href="http://msdn.microsoft.com/en-us/windows/apps/br229516"&gt;http://msdn.microsoft.com/en-us/windows/apps/br229516&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200575" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/09/17/windows-developer-preview-downloads.aspx</link>
      <pubDate>Sat, 17 Sep 2011 02:49:42 GMT</pubDate>
    </item>
    <item>
      <title>[DEV 11] ¿Dónde puedo descargar el preview de las herramientas de desarrollo?</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para quienes cuentan con una suscripción MSDN pueden descargarlos desde el sitio de descarga de su suscripción y para quienes no tienen una suscripción MSDN los links de descarga son los siguientes:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=225709"&gt;Download Visual Studio 11 Developer Preview ›&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=225714"&gt;Download Team Foundation Server 11 Developer Preview ›&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=225758"&gt;Download Visual Studio Agents 11 Developer Preview ›&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=225757"&gt;Download Visual Studio 11 Developer Preview Remote Debugger ›&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=228575"&gt;Download Team Explorer Everywhere 11 Developer Preview ›&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=225767"&gt;Download .NET Framework 4.5 Developer Preview ›&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200574" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/09/17/dev-11-191-d-243-nde-puedo-descargar-el-preview-de-las-herramientas-de-desarrollo.aspx</link>
      <pubDate>Sat, 17 Sep 2011 02:46:03 GMT</pubDate>
    </item>
    <item>
      <title>[DEV 11] ¿Qué necesito para conectar mis herramientas actuales a TFS Preview?</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para quienes desean conectar su Visual Studio 2010 o cualquier otra herramienta listada a continuación a &lt;a href="http://tfspreview.com/"&gt;Team Foundation Preview&lt;/a&gt; en la nube a continuación los vinculos para descargar el software que necesitan instalar.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Visual Studio 2010 SP1&lt;/strong&gt;      &lt;br /&gt;To connect and authenticate with the Team Foundation Service Preview you need to install the hotfix &lt;a href="http://go.microsoft.com/fwlink/?LinkID=212065"&gt;KB2581206&lt;/a&gt;. If you do not have &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691"&gt;Service Pack 1 for Visual Studio 2010&lt;/a&gt; installed then you need to install &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691"&gt;SP1&lt;/a&gt;first.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Microsoft Test Manager 2010 SP1&lt;/strong&gt;      &lt;br /&gt;As with Visual Studio 2010, you need to install the hotfix &lt;a href="http://go.microsoft.com/fwlink/?LinkID=212065"&gt;KB2581206&lt;/a&gt; after installing &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=23691"&gt;Visual Studio 2010 Service Pack 1&lt;/a&gt; if you do not already have it.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Eclipse&lt;/strong&gt;      &lt;br /&gt;For Eclipse 3.5 and higher (or IDE’s based on those versions of Eclipse) on any operating system (including Mac, Linux as well as Windows) you can install the TFS plug-in for Eclipse which comes as part of the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=228575"&gt;Team Explorer Everywhere 11 Developer Preview&lt;/a&gt;.      &lt;br /&gt;. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Build Server (Build Controller and Agent)&lt;/strong&gt;      &lt;br /&gt;To have a build server that talks to the Team Foundation Service Preview, you need to install the Build Service from the latest Team Foundation Server 11 Developer Preview media (&lt;a href="http://go.microsoft.com/fwlink/?LinkId=225714"&gt;Web Install (1Mb)&lt;/a&gt;, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=225713"&gt;Self Extracting Archive (1.1Gb)&lt;/a&gt; or &lt;a href="http://go.microsoft.com/fwlink/?LinkId=225716"&gt;ISO (1.1Gb)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Visual Studio 11 Developer Preview&lt;/strong&gt;      &lt;br /&gt;Also, don’t forget that the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=217619"&gt;Visual Studio 11 Developer Preview&lt;/a&gt; has all the bits built in to be able to make use of your Team Foundation Service Preview account. Not only that, some of the great new features of the Team Foundation Service Preview will only light up from the newest version Visual Studio. We are keen to get your feedback on this preview release so download it and give it a go from a test machine and let us know what you think.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Post Original: &lt;a title="http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/tfs-preview-downloads.aspx" href="http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/tfs-preview-downloads.aspx"&gt;http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/tfs-preview-downloads.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200573" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/09/17/dev-11-191-qu-233-necesito-para-conectar-mis-herramientas-actuales-a-tfs-preview.aspx</link>
      <pubDate>Sat, 17 Sep 2011 02:38:03 GMT</pubDate>
    </item>
    <item>
      <title>[DEV 11]–Links de interés sobre Team Foundation Service Preview</title>
      <description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Recuerden que para proveer feedback sobre Team Foundation Service Preview lo pueden hacer a través de los siguientes links &lt;/p&gt;  &lt;p&gt;· Para sugerencia de nuevas características: &lt;a href="http://visualstudio.uservoice.com"&gt;http://visualstudio.uservoice.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· Para reportar errores: &lt;a href="http://connect.microsoft.com"&gt;http://connect.microsoft.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· Para preguntas de soporte o iniciar alguna discusión sobre el producto puede utilizar el foro: &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/TFService/threads"&gt;Team Foundation Service Preview support forum&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a name="tutorials"&gt;&lt;/a&gt;&lt;b&gt;Tutoriales de Team Foundation Service Preview &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Microsoft ha cargado en Channel 9 algunos videos tutoriales sobre las características de TFS, a continuación les comparto los links con su descripción (en inglés) &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Team-Foundation-Service-Preview-Getting-Started"&gt;Getting Started&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Find out how to get started with &lt;a href="http://tfspreview.com"&gt;tfspreview.com&lt;/a&gt;. Once you have your invitation code we show you how to create an account and create your first team project. We then take a look around some of the key feature areas in your Team Foundation Service Preview account. Finally we look at how to install the update into Visual Studio to allow you to connect to the Team Foundation Service Preview from Visual Studio 2010. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Team-Foundation-Service-Preview-Managing-Security"&gt;Managing Security&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now that you have an account for the Team Foundation Service preview, we look at how to add and configure new members to your teams. We also do a deep dive into the security configuration capabilities of Team Foundation Server and find out how to check the effective permissions of a user or group through the web site. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Team-Foundation-Service-Preview-Agile-Project-Management"&gt;Agile Project Management&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some of the powerful new features of the Team Foundation Service preview are the new agile planning tools. We show use of the product backlog tool to easily prioritize work by simply dragging and dropping backlog items in the list as well as how to decompose work on the backlog into epics and stories. Then we look at planning a sprint, entering team capacity and visualizing progress using the burn down charts. Finally, we show how to use the built in task boards to manage the work throughout the sprint while keeping an eye on the progress of your team. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Team-Foundation-Service-Preview-Using-Visual-Studio-Microsoft-Test-Manager-and-Eclipse"&gt;Using Visual Studio, Microsoft Test Manager, and Eclipse&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s not just about the web. In this video, we look at using the Team Foundation Service Preview from Visual Studio 2010, Microsoft Test Manager 2010 and Eclipse to manage your code and track your work items. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/Team-Foundation-Service-Preview-Team-Build"&gt;Team Build&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We look at how to configure and use a build server in your own organization for use with the Team Foundation Service Preview. We show how to install and configure the build service and attach it to your service preview account. Then we show how to configure your build server. Finally, we show how to create and manage an automated build from Visual Studio using your newly installed build server and how to access the build results via the web.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200572" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/09/17/dev-11-links-de-inter-233-s-sobre-team-foundation-service-preview.aspx</link>
      <pubDate>Sat, 17 Sep 2011 02:31:12 GMT</pubDate>
    </item>
    <item>
      <title>[DEV11] Máquina Virtual – HOL y scripts de Visual Studio 11</title>
      <description>&lt;p&gt;En este post les quiero compartir que ya se encuentra disponible una máquina virtual con Visual Studio 11 Developer Preview ALM para que puedan ir explorando sus nuevas características también encontrarán 6 laboratorios.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los vínculos de descarga el contenido son los siguientes:&lt;/p&gt;  &lt;p&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Agile Project Management in Team Foundation Server 11.docx    &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Building the Right Software - Generating Storyboards and Collecting Stakeholder Feedback with Visual Studio 11.docx     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Diagnosing Issues in Production with IntelliTrace and Visual Studio 11.docx     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Exploratory Testing and Other Enhancements in Microsoft Test Manager 11.docx     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Making Developers More Productive with Team Foundation Server 11.docx     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Unit Testing with Visual Studio 11 - MSTest, NUnit, xUnit.net, and Code Clone.docx     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part01.exe     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part02.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part03.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part04.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part05.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part06.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part07.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part08.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part09.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part10.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part11.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part12.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part13.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/VisualStudio11ALMDeveloperPreview.part14.rar     &lt;br /&gt;http://download.microsoft.com/download/A/9/2/A9253B14-5F23-4BC8-9C7E-F5199DB5F831/Working with the Visual Studio 11 ALM Developer Preview Virtual Machine.docx &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200571" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/09/17/dev11-m-225-quina-virtual-hol-y-scripts-de-visual-studio-11.aspx</link>
      <pubDate>Sat, 17 Sep 2011 02:21:38 GMT</pubDate>
    </item>
    <item>
      <title>[Info] Contadores de Rendimiento para diagnóstico y afinación de SqlServer</title>
      <description>&lt;p&gt;A continuaci&amp;oacute;n presento alguno de los contadores de rendimiento, pertenecientes a la instrumentaci&amp;oacute;n de SqlServer que ayudan al proceso de diagn&amp;oacute;stico y optimizaci&amp;oacute;n de SqlServer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Performance.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Performance.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Performance-Counter.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Performance-Counter.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Performance-Counter.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En el gr&amp;aacute;fico se presenta el grupo de contadores de rendimiento, luego al abrirlo se presenta cada contador independiente y luego en la parte de abajo (si aplica) que es lo q se quiere medir&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Procesador&lt;/strong&gt; 
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Processor&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td width="1"&gt;Esperado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;%User Time&lt;/td&gt;
&lt;td&gt;SqlServer se ejecuta en modo de Usuario. El modo privilegiado es usado por el Sistema operativo para acceder a los componentes de hardware. Este componente deber&amp;iacute;a presentar un valor mayor de 70%, si el valor es menor que esto se deben revisar los indicadores %privileged time y %processor time para verificar si existe alg&amp;uacute;n tipo de problema con el procesador&lt;/td&gt;
&lt;td width="1"&gt;&amp;gt;70%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;%Privileged Time&lt;/td&gt;
&lt;td&gt;El sistema operativo mueve los hilos al modo de acceso privilegiado para acceder servicios de Hardware. Este contador debe tener un valor menor a 20%.&lt;/td&gt;
&lt;td width="1"&gt;&amp;lt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;%Processor Time&lt;/td&gt;
&lt;td&gt;Presenta el porcentaje de tiempo usado por la CPU en un periodo de tiempo. Idealmente debe ser menor que 70%.&lt;/td&gt;
&lt;td width="1"&gt;&amp;lt;70%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Interrupts/Sec&lt;/td&gt;
&lt;td&gt;Es el promedio de incidentes por segundo, al cual el procesador recibi&amp;oacute; y proces&amp;oacute; interrupciones de Hardware&lt;/td&gt;
&lt;td width="1"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;System&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Esperado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Processor Queue Length&lt;/td&gt;
&lt;td&gt;Es el n&amp;uacute;mero de hilos que espearan a ser procesados. Este contador por valor general divido por el n&amp;uacute;mero de n&amp;uacute;cleos disponibles. Deber&amp;iacute;a ser menor que 2&lt;/td&gt;
&lt;td&gt;&amp;lt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disco&lt;/strong&gt;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Physical Disk&lt;/td&gt;
&lt;td width="80%"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td width="1"&gt;Esperado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Current Queue Length&lt;/td&gt;
&lt;td width="80%"&gt;Un tama&amp;ntilde;o sostenido de una cola de disco presenta un posible problema con el subsistema de I/O.&lt;/td&gt;
&lt;td width="1"&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average Queue Length&lt;/td&gt;
&lt;td width="80%"&gt;Si el promedio de longitud de la cola es mayor que 2 indica que existe un problema potencial con el subsistea de IO, esto tambien puede deberse a un indicador disk sec/read y disk sec/write alto.&lt;/td&gt;
&lt;td width="1"&gt;&amp;lt;=2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Disk Sec/Read
&lt;p&gt;Disk Sec/Writes&lt;/p&gt;
&lt;/td&gt;
&lt;td width="80%"&gt;Ninguno de estos contadores deber&amp;iacute;a tener un valor superior a 15ms en condiciones normales. Valores continuos sobre 20ms puede indicar un problema en el disco o sobrecarga del sistema o alto fraccionamiento del disco.
&lt;p&gt;Bajo estas condiciones se pueden considerar las siguientes alternativas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mover los archivos de base de datos a discos adicionales&lt;/li&gt;
&lt;li&gt;Crear grupos de archivos en diferentes discos y pasar algunas tablas a cada uno de esos discos&amp;nbsp; (pueden tener difernte RAID) lo cual puede influir notablemente en el desempe&amp;ntilde;o&lt;/li&gt;
&lt;li&gt;Revisar los &amp;iacute;ndices de las tablas&lt;/li&gt;
&lt;li&gt;Revisar los contadores de CPU y memoria con el fin de identificar otros cuellos de Botella&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td width="1"&gt;&amp;lt;=15&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;Memory/Cache&lt;/b&gt;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Memory&lt;/td&gt;
&lt;td width="80%"&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Page Faults/Sec:&lt;/td&gt;
&lt;td width="80%"&gt;Los fallos de p&amp;aacute;gina ocurren cuando se busca una p&amp;aacute;gina en memoria y no se encuentra. Existen 2 tipos de fallos de p&amp;aacute;gina:
&lt;p&gt;&lt;a name="Fuertes_(Hard)_"&gt;Fuertes (Hard) &lt;/a&gt;: Requiere acceso a disco&lt;/p&gt;
&lt;p&gt;Suaves (Soft).&amp;nbsp; La p&amp;aacute;gina buscada est&amp;aacute; en alguna otra parte de la memoria&lt;/p&gt;
&lt;p&gt;Un alto n&amp;uacute;mero de fallos de p&amp;aacute;gina por segundo indica que existe un problema con la memoria usada por Sql Server. Usando este contador junto con SqlServer:MemoryManager se puede determinar si existe algun tipo de presi&amp;oacute;n sobre la memoria&lt;/p&gt;
&lt;p&gt;Bajo estas condiciones puede considerarse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Revisar los procedimientos y las pr&amp;aacute;cticas usadas para el desarrollo de los mismos&lt;/li&gt;
&lt;li&gt;Aumentar la memoria del servidor &lt;/li&gt;
&lt;li&gt;Revisar el espacio en disco disponible en donde se ubiquen los temporales del sistema operativo&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Pages/Sec&lt;/td&gt;
&lt;td width="80%"&gt;Este contador es valor real de fallos &lt;a href="http://geeks.ms/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#Fuertes_(Hard)_"&gt;Fuertes de p&amp;aacute;ginas&lt;/a&gt; y debe ser usado en correlaci&amp;oacute;n con Page Faults/Sec y SQL Server memory Manager para revisar la presi&amp;oacute;n sobre la memoria&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Access Methods&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Forwarded Records/Sec&lt;/td&gt;
&lt;td&gt;Numero de registros tra&amp;iacute;dos usando punteros de registros, es decir, cuando los registros tienen espacios vac&amp;iacute;os entre ellos o cuando el tama&amp;ntilde;o del registro no queda ajustado al tama&amp;ntilde;o de una p&amp;aacute;gina, esta situaci&amp;oacute;n puede presentarse cuando se inicia con un registro corto y se actualiza el dato quedando parte de &amp;eacute;ste en otra p&amp;aacute;gina lo que requiere la generaci&amp;oacute;n de un puntero para saber en qu&amp;eacute; lugar est&amp;aacute; la otra parte del registro.
&lt;p&gt;Esto se puede evitar siguiendo los siguientes pasos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ser cuidadoso al determinar cuales de las columnas permiten o no nulos&lt;/li&gt;
&lt;li&gt;Usar valores por defecto (para evitar el uso de nulos)&lt;/li&gt;
&lt;li&gt;Usar char en lugar de Varchar cuando sea posible&lt;/li&gt;
&lt;li&gt;Manejar un esquema de normalizaci&amp;oacute;n en donde el n&amp;uacute;mero de campos sea menos (Soluciones OLTP)&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Full Scans/Sec&lt;/td&gt;
&lt;td&gt;Se realiza una lectura completa de una Tabla o de un &amp;iacute;ndice. Esto puede ser causado por el uso indebido de &amp;iacute;ndices.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Page Splits/Sec&lt;/td&gt;
&lt;td&gt;Fraccionamiento sobre las p&amp;aacute;ginas de los &amp;iacute;ndices. Este indicador est&amp;aacute; asociado a las p&amp;aacute;ginas hoja del Arbol de &amp;iacute;ndices que no se almacenan conitnuamente lo que lleva a su fraccionamiento en disco. Esto se puede evitar configurando apropiadamente &lt;a href="http://geeks.ms/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#Fill_Factor"&gt;Fill Factor&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Memory Manager&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Memory Grants Pending&lt;/td&gt;
&lt;td&gt;Memoria que se necesita para procesar cada una de las peticiones de los usuarios. Si no se dispone de memoria suficiente entonces el proceso debe esperar a que se le sea asignada para su ejecuci&amp;oacute;n, lo que por supuesto impacta el desempe&amp;ntilde;o de la consulta o procedimiento en ejecuci&amp;oacute;n
&lt;p&gt;Para evitarlo se pueden seguir los siguientes pasos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agregar mas memoria al servidor&lt;/li&gt;
&lt;li&gt;Asignando mas memoria a SqlServer&lt;/li&gt;
&lt;li&gt;Creando &amp;Iacute;ndices apropiados&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Buffer Manager&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;Esperado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Buffer Cache Hit Ratio&lt;/td&gt;
&lt;td&gt;Porcentaje del tiempo en que las p&amp;aacute;ginas solicitadas est&amp;aacute;n ya en memoria. Idealmente debe mantenerse sobre 99%, si es menor que 95% indica que SqlServer no tiene suficiente memoria y que agregar m&amp;aacute;s memoria al servidor, asignada a SqlServer, ser&amp;iacute;a muy beficioso&lt;/td&gt;
&lt;td&gt;&amp;gt;99%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Checkpoints/Sec&lt;/td&gt;
&lt;td&gt;Paginas escritas a disco durante el proceso de &lt;a href="http://geeks.ms/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#CheckPoints"&gt;CheckPoint&lt;/a&gt;. Se identifica presi&amp;oacute;n sobre la memoria si el contador tiene un valor superior a 300 Segundos&lt;/td&gt;
&lt;td&gt;&amp;lt;300s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Lazy Writes/Sec&lt;/td&gt;
&lt;td&gt;Paginas escritas a disco durante el proceso &lt;a href="http://geeks.ms/controlpanel/blogs/posteditor.aspx?SelectedNavItem=NewPost#Lazy_Writer"&gt;LazyWriter&lt;/a&gt; (Escribe las p&amp;aacute;ginas en segundo plano al disco). Se identifica presi&amp;oacute;n sobre la memoria si el contador tiene un valor superior a 300 Segundos&lt;/td&gt;
&lt;td&gt;&amp;lt;300s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Page Life Expectancy&lt;/td&gt;
&lt;td&gt;Este es uno de los principales contadores para identificar presi&amp;oacute;n sobre la memoria. Determina el tiempo en segundos en el que la p&amp;aacute;gina reside en el Cach&amp;eacute; de SqlServer. Si el valor es bajo indica los siguientes problemas: 
&lt;ul&gt;
&lt;li&gt;El Cach&amp;eacute; es Frio (Revisar informaci&amp;oacute;n sobre Fallos de P&amp;aacute;gina Page Faults)&lt;/li&gt;
&lt;li&gt;Problemas de Memoria&lt;/li&gt;
&lt;li&gt;Falta de creaci&amp;oacute;n de &amp;iuml;ndices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si Checkpoints/Sec, Lazy Writes/Sec y Page life expectancy juntos es menor a 300 Segundos entonces indica que la causa es la falta de memoria y que se debe agregar m&amp;aacute;s memoria al servidor&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Databases&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Transactions/Sec&lt;/td&gt;
&lt;td&gt;Indica el n&amp;uacute;mero de transacciones que ocurren por sengundo en el servidor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;General StatisticsCounters&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;User Connections&lt;/td&gt;
&lt;td&gt;N&amp;uacute;mero de conexiones hechas a SqlServer&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Latches&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Average Latch wait Time&lt;/td&gt;
&lt;td&gt;Son objetos livianos de sincronizaci&amp;oacute;n. No se mantienen durante la duraci&amp;oacute;n de la transacci&amp;oacute;n. T&amp;iacute;picamente se usan cuando se transfieren filas a memoria, mientras se contolan modificaciones a las filas, etc.
&lt;p&gt;Un valor alto puede indicar alg&amp;uacute;n problema con el subsistema de Memoria&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="100%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Locks&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="20%"&gt;Average Wait Time(ms)&lt;br /&gt;Lock Wait time(ms)&lt;br /&gt;Lock waits/Sec&lt;/td&gt;
&lt;td&gt;Los contadores relacionados a los bloqueos que mantiene SqlServer en un momento determinado de las transacciones. Las transacciones deben ser tan cortas como sea posible y por lo tanto deber&amp;iacute;a mantener bloqueos la menor cantidad de tiempo posible para evitar para bloqueos a otros usaurios o procesos. Un Valor alto para cualquiera de estos contadores indica: 
&lt;ul&gt;
&lt;li&gt;Presi&amp;oacute;n sobre la memoria&lt;/li&gt;
&lt;li&gt;Problemas con el Disco&lt;/li&gt;
&lt;li&gt;&amp;Iacute;ndices inadecuados&lt;/li&gt;
&lt;li&gt;Dise&amp;ntilde;o inadecuado de tablas u objetos de SqlServer&lt;/li&gt;
&lt;li&gt;Inadecuada ubicaci&amp;oacute;n de los archivos de base de datos &lt;/li&gt;
&lt;li&gt;Uso indebido de los niveles de aislamiento de SqlServer&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Los mencionados, son algunos de los contadores preferidos, aparte de esos pueden revisarse estos contadores:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Object Name Counter Name&lt;br /&gt;SQL Statistics Compilations/sec&lt;br /&gt;SQL Statistics Recompilations/sec&lt;br /&gt;SQL Statistics Batch Requests/sec&lt;br /&gt;SQL Server: Buffer Manager Readahead pages/sec&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Algunas Definiciones&lt;/b&gt;&lt;/p&gt;
&lt;hr align="left" /&gt;
&lt;p&gt;&lt;a name="P&amp;aacute;ginas_Sucias"&gt;P&amp;aacute;ginas Sucias&lt;/a&gt;: P&amp;aacute;ginas que han entrado al cach&amp;eacute; y han sido modificadas, pero aun no se han escrito a disco. &lt;/p&gt;
&lt;p&gt;&lt;a name="CheckPoints"&gt;CheckPoints&lt;/a&gt;: Escribe todas las p&amp;aacute;ginas sucias a disco. Crea un punto al cual se garantiza que todas las p&amp;aacute;ginas han sido escritas a disco&lt;/p&gt;
&lt;p&gt;&lt;a name="Fill_Factor"&gt;Fill Factor&lt;/a&gt;: Factor por el cual crecen los archivos de base datos, cuando se espera una gran cantidad de nuevos registros en la base de datos se debe establecer un FillFactor alto con el fin que los datos no queden fragmentados y un FillFactor un poco menor en caso de ser utilizada en procesos de actualizaci&amp;oacute;n y solo consulta&lt;/p&gt;
&lt;p&gt;&lt;a name="Lazy_Writer"&gt;Lazy Writer&lt;/a&gt;:&amp;nbsp; es un proceso que elimina conjuntos de buffers viejos y no usaados de memoria (Los buffers que tienen cambios deben ser escritos de nuevo al disco antes que el buffer pueda ser reusado para una p&amp;aacute;gina diferente). &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200429" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/09/10/info-contadores-de-rendimiento-para-diagn-243-stico-y-afinaci-243-n-de-sqlserver.aspx</link>
      <pubDate>Sat, 10 Sep 2011 21:46:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo detectar los grupos de archivos que tiene cada tabla en la base de datos</title>
      <description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;
&lt;p&gt;En el art&amp;iacute;culo en el &lt;a href="http://geeks.ms/blogs/fangarita/archive/2011/01/17/info-optimizaci-243-n-de-consultas-parte-1-generalidades.aspx" title="Optimizaci&amp;oacute;n de consultas"&gt;art&amp;iacute;culo de optimizaci&amp;oacute;n de consultas&lt;/a&gt; se menciona como uno de los procesos de optimizaci&amp;oacute;n, la asignaci&amp;oacute;n de grupos de archivos a diferentes tables para utilizar mejor el hardware del servidor y hacer de las consultas un proceso mas veloz, para determinar cual son las tablas que son candidatas para pasarlas a otros grupos de archivos podemos usar:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; si&lt;span style="color:#808080;"&gt;.&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;rows&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;ConteoFilas&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; SO&lt;span style="color:#808080;"&gt;.&lt;/span&gt;Name &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;Tabla&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; SI&lt;span style="color:#808080;"&gt;.&lt;/span&gt;name &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;Nombre Indice&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; SFG&lt;span style="color:#808080;"&gt;.&lt;/span&gt;groupname &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;Grupo de Archivos&amp;#39;&lt;/span&gt; &lt;br /&gt;&lt;span style="color:#0000ff;"&gt;from &lt;/span&gt;&lt;span style="color:#008000;"&gt;sysobjects&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SO &lt;span style="color:#808080;"&gt;join&lt;/span&gt; &lt;span style="color:#008000;"&gt;sysindexes&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SI &lt;span style="color:#0000ff;"&gt;on &lt;/span&gt;SO&lt;span style="color:#808080;"&gt;.&lt;/span&gt;Id &lt;span style="color:#808080;"&gt;=&lt;/span&gt; SI&lt;span style="color:#808080;"&gt;.&lt;/span&gt;id &lt;span style="color:#808080;"&gt;join&lt;/span&gt; &lt;span style="color:#008000;"&gt;sysfilegroups&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; SFG &lt;span style="color:#0000ff;"&gt;on &lt;/span&gt;SI&lt;span style="color:#808080;"&gt;.&lt;/span&gt;GroupId &lt;span style="color:#808080;"&gt;=&lt;/span&gt; SFG&lt;span style="color:#808080;"&gt;.&lt;/span&gt;GroupId &lt;br /&gt;&lt;span style="color:#0000ff;"&gt;order&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;by&lt;/span&gt; si&lt;span style="color:#808080;"&gt;.&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;rows&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;desc&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; SO&lt;span style="color:#808080;"&gt;.&lt;/span&gt;Name &lt;span style="color:#808080;"&gt;,&lt;/span&gt; SI&lt;span style="color:#808080;"&gt;.&lt;/span&gt;name&lt;span style="color:#808080;"&gt;,&lt;/span&gt; SFG&lt;span style="color:#808080;"&gt;.&lt;/span&gt;GroupName&lt;/p&gt;
&lt;p&gt;Las tablas que contengan un mayor n&amp;uacute;mero de registros son candidatas para hacer el paso a otro(s) grupos de archivo&lt;/p&gt;
&lt;span style="color:#0000ff;font-size:x-small;"&gt;
&lt;p&gt;select &lt;/p&gt;
&lt;span style="color:#0000ff;font-size:x-small;"&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Esto nos devuelte el numero de filas y nombre de la tabla y el grupo de archivos al cual pertenece, en versiones como Standard &amp;eacute;ste puede ser uno de los pasos para lograr m&amp;aacute;s velocidad en tablas de hechos, tales como movimientos y registros paso a paso&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;si&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;rows&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;font-size:x-small;"&gt;&amp;#39;Rows&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SO&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;Name &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;font-size:x-small;"&gt;&amp;#39;Table&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SI&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;name &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;font-size:x-small;"&gt;&amp;#39;Index&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SFG&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;groupname &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;font-size:x-small;"&gt;&amp;#39;Filegroup&amp;#39; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;from &lt;/span&gt;&lt;span style="color:#008000;font-size:x-small;"&gt;sysobjects&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as &lt;/span&gt;&lt;span style="font-size:x-small;"&gt;SO &lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;join&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-size:x-small;"&gt;sysindexes&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SI &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;on&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SO&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;Id &lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;=&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SI&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;id &lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;join&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#008000;font-size:x-small;"&gt;sysfilegroups&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;as &lt;/span&gt;&lt;span style="font-size:x-small;"&gt;SFG &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;on&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SI&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;GroupId &lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;=&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SFG&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;GroupId&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;order&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;by&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; si&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;rows&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;desc&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SO&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;Name &lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SI&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;.&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;name&lt;/span&gt;&lt;span style="color:#808080;font-size:x-small;"&gt;,&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; SFG.GroupName&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;
&lt;p&gt;Espero sea de ayuda&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&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=200394" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/09/07/code-c-243-mo-detectar-los-grupos-de-archivos-que-tiene-cada-tabla-en-la-base-de-datos.aspx</link>
      <pubDate>Wed, 07 Sep 2011 22:57:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo consultar los registros no asociados con otros registros de la misma tabla</title>
      <description>&lt;p&gt;&amp;nbsp;Detectar si un determinado usuario&amp;nbsp;tiene o no autorizaci&amp;oacute;n para realizar alguna tarea, detectar cuales de los &amp;iacute;tems no ha sido asociados a &amp;eacute;l es tan solo algunas de las aplicaciones para &amp;eacute;ste art&amp;iacute;culo. &lt;/p&gt;
&lt;p&gt;Como primera instancia tenemos una tabla de ejemplo, que se genera usando:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;declare &lt;/span&gt;@t1 &lt;span style="color:#0000ff;"&gt;table &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;id &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;span style="color:#808080;"&gt;,&lt;/span&gt; VALOR &lt;span style="color:#0000ff;"&gt;CHAR&lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;1&lt;span style="color:#808080;"&gt;))&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;insert into &lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;@t1 &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;1&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @t1 &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;2&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @t1 &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;3&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @t1 &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;4&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;insert&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;into&lt;/span&gt; @t1 &lt;span style="color:#0000ff;"&gt;values &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;5&lt;span style="color:#808080;"&gt;,&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;&lt;span style="color:#808080;"&gt;)&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;select &lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;*&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @t1 &lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;table width="50%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#c0c0c0"&gt;id&lt;/td&gt;
&lt;td bgcolor="#c0c0c0"&gt;VALOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;Queremos saber por cada uno de los valores en la columna Id, cuales de los valores en la columna VALOR no est&amp;aacute;n asociados con un Id&lt;/p&gt;
&lt;p&gt;Es decir que para el Id 1, los valores deben ser B,C,D,E&lt;/p&gt;
&lt;p&gt;La primera aproximaci&amp;oacute;n para saber cual de los VALORES est&amp;aacute; aplicado a cada uno de los Id es realizar un Cross Join&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;
&lt;p&gt;SELECT &lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="color:#808080;"&gt;*&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @t1 t1 &lt;span style="color:#808080;"&gt;cross&lt;/span&gt; &lt;span style="color:#808080;"&gt;join &lt;/span&gt;@t1 t2 &lt;/p&gt;
&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;table width="50%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#c0c0c0"&gt;id&lt;/td&gt;
&lt;td bgcolor="#c0c0c0"&gt;VALOR&lt;/td&gt;
&lt;td bgcolor="#c0c0c0"&gt;id&lt;/td&gt;
&lt;td bgcolor="#c0c0c0"&gt;VALOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#9bb4e6"&gt;1&lt;/td&gt;
&lt;td bgcolor="#9bb4e6"&gt;A&lt;/td&gt;
&lt;td bgcolor="#9bb4e6"&gt;1&lt;/td&gt;
&lt;td bgcolor="#9bb4e6"&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#d7e0f4"&gt;1&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;A&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;2&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#d7e0f4"&gt;1&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;A&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;3&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#d7e0f4"&gt;1&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;A&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;4&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#d7e0f4"&gt;1&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;A&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;5&lt;/td&gt;
&lt;td bgcolor="#d7e0f4"&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;Se nota en &amp;eacute;sta combinaci&amp;oacute;n que 1 ya est&amp;aacute; asociado con A en la fila &lt;span style="background-color:#9bb4e6;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;nbsp;y notamos que en las columnas &lt;span style="background-color:#d7e0f4;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;nbsp;vemos que los valos con 1 no est&amp;aacute;n asociados&lt;/p&gt;
&lt;p&gt;Por lo que si creamos un condici&amp;oacute;n podemos eliminar los que ya est&amp;aacute;n asociados dejando solo los que NO est&amp;aacute;n asociados&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;SELECT &lt;/span&gt;t2&lt;span style="color:#808080;"&gt;.&lt;/span&gt;id&lt;span style="color:#808080;"&gt;,&lt;/span&gt; t1&lt;span style="color:#808080;"&gt;.&lt;/span&gt;VALOR &lt;span style="color:#0000ff;"&gt;from&lt;/span&gt; @t1 t1 &lt;span style="color:#808080;"&gt;cross join &lt;/span&gt;@t1 t2 &lt;span style="color:#0000ff;"&gt;where &lt;/span&gt;&lt;span style="color:#808080;"&gt;not&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#808080;"&gt;(&lt;/span&gt;t1&lt;span style="color:#808080;"&gt;.&lt;/span&gt;id &lt;span style="color:#808080;"&gt;=&lt;/span&gt; t2&lt;span style="color:#808080;"&gt;.&lt;/span&gt;id &lt;span style="color:#808080;"&gt;and&lt;/span&gt; t2&lt;span style="color:#808080;"&gt;.&lt;/span&gt;VALOR &lt;span style="color:#808080;"&gt;=&lt;/span&gt; t2&lt;span style="color:#808080;"&gt;.&lt;/span&gt;VALOR &lt;span style="color:#808080;"&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;table width="50%" border="1" style="border-collapse:collapse;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#c0c0c0"&gt;id&lt;/td&gt;
&lt;td bgcolor="#c0c0c0"&gt;VALOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200379" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/09/06/code-c-243-mo-consultar-los-registros-no-asociados-con-otros-registros-de-la-misma-tabla.aspx</link>
      <pubDate>Tue, 06 Sep 2011 16:24:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Como crear el esquema de un archivo Raw SSIS</title>
      <description>&lt;p&gt;Importar&amp;nbsp;grandes vol&amp;uacute;menes de datos puede tomar mucho tiempo en SSIS si no se hace de la manera apropiada, y una de las principales t&amp;eacute;cnicas para lograr este prop&amp;oacute;sito es el uso de archivos Raw (Crudos), los cuales son archivos binarios de alt&amp;iacute;simo rendimiento que por sus caracter&amp;iacute;sticas permiten leer y escribir datos a alta velocidad haci&amp;eacute;ndolos ideales para ser el paso intermedio entre el origen y el destino de los datos (Stage).&lt;/p&gt;
&lt;p&gt;Para usarlos, sin embargo, debe crearse primero un archivo vac&amp;iacute;o que tenga el esquema de datos que vamos a utilizar posteriormente en nuestra soluci&amp;oacute;n, as&amp;iacute; que presento los pasos para crear este esquema usando un paquete que apoya dicha tarea:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crear un nuevo paquete&lt;/li&gt;
&lt;li&gt;Agregar un Data Flow&lt;/li&gt;
&lt;li&gt;Agrear un Origen de Datos Ole Db&lt;/li&gt;
&lt;li&gt;Crear una consulta para el origen Ole Db que devuelva cero registros (&lt;strong&gt;top 0&lt;/strong&gt;) y que tenga los registros que deseamos incluir en el esquema del archivo raw&lt;br /&gt;select top 0&lt;br /&gt;cast(null as int) as Id,&lt;br /&gt;cast(null as varchar(50)) as Value&lt;/li&gt;
&lt;li&gt;Si es necesario, Agregar una transformaci&amp;oacute;n DataConversion para establecer el tipo de datos desedo para cada columna&lt;/li&gt;
&lt;li&gt;Agregar un Destino de Archivo Raw y seleccionar las columnas que se quieren en el archivo Raw&lt;/li&gt;
&lt;li&gt;Ejecutar el Paquete&lt;/li&gt;
&lt;li&gt;Usar el Archivo Raw&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Adjunto se encuentra un paquete de ejemplo para realizar &amp;eacute;sta tarea&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=200007" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/08/26/code-como-crear-el-esquema-de-un-archivo-raw-ssis.aspx</link>
      <pubDate>Fri, 26 Aug 2011 16:45:00 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] Artículos en MSDN escrito por los VS ALM Rangers</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table width="845" cellpadding="1" cellspacing="1" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="245" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VSALMRangersLogo2011_2D00_transparent_2D00_600dpi_5F00_3663976D.png"&gt;&lt;img height="63" width="240" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VSALMRangersLogo2011_2D00_transparent_2D00_600dpi_5F00_thumb_5F00_549E2896.png" alt="VSALMRangersLogo2011-transparent-600dpi" border="0" title="VSALMRangersLogo2011-transparent-600dpi" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="595" valign="top"&gt;Les recomiendo revisar los siguientes art&amp;iacute;culos en ingl&amp;eacute;s escrito por los VS ALM Rangers. &lt;br /&gt;&lt;br /&gt;Muy buenos! se los recomiendo&amp;hellip;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;table width="565" cellpadding="1" cellspacing="1" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="117" valign="top"&gt;
&lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MSDN1_5F00_333E82FA.jpg"&gt;&lt;img height="114" width="86" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MSDN1_5F00_thumb_5F00_32661D10.jpg" alt="MSDN1" border="0" title="MSDN1" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="443" valign="top"&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg598921.aspx"&gt;&lt;strong&gt;Team Foundation Server: Visual Studio Team Foundation Server Branching and Merging Guidance&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Learn firsthand from members of one of Microsoft&amp;rsquo;s expert &amp;ldquo;Ranger&amp;rdquo; teams how best to handle software development branching with Visual Studio Team Foundation Server.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="117" valign="top"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MSDN2_5F00_467F3999.jpg"&gt;&lt;img height="109" width="82" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/MSDN2_5F00_thumb_5F00_4C59DD32.jpg" alt="MSDN2" border="0" title="MSDN2" style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="443" valign="top"&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/gg983486.aspx"&gt;&lt;strong&gt;Team Foundation Server: Visual Studio Team Foundation Server Team Project and Collection Guidance&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Microsoft&amp;rsquo;s expert &amp;ldquo;Ranger&amp;rdquo; team presents guidance for organizing and provisioning Team Foundation Server Team Projects and Team Project Collections.&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;&lt;br /&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=197102" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/07/03/vs-alm-rangers-art-237-culos-en-msdn-escrito-por-los-vs-alm-rangers.aspx</link>
      <pubDate>Sun, 03 Jul 2011 00:35:00 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] Resumen de Guías en Español</title>
      <description>&lt;table border="0" cellspacing="0" cellpadding="1" width="729"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="244"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VSALMRangersLogo2011_2D00_transparent_2D00_600dpi_5F00_3F4EF51B.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="VSALMRangersLogo2011-transparent-600dpi" border="0" alt="VSALMRangersLogo2011-transparent-600dpi" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/VSALMRangersLogo2011_2D00_transparent_2D00_600dpi_5F00_thumb_5F00_2F130755.png" width="240" height="63" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="483"&gt;A continuación les comparto los vínculos al contenido de las guías de los VS ALM Rangers localizadas al español:          &lt;br /&gt;          &lt;p&gt;Si desean que alguna otra guía de los VS ALM Rangers sea localizada al español por favor agregar un comentario a este artículo con el nombre de la guía.&lt;/p&gt;          &lt;p&gt;Su feedback es muy importante para nosotros!!!. Gracias.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="2" cellspacing="0" cellpadding="1" width="733"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="219"&gt;         &lt;blockquote style="margin-right:0px;" dir="ltr"&gt;           &lt;p align="center"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Guía&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;        &lt;td valign="top" width="281"&gt;         &lt;blockquote&gt;           &lt;p align="center"&gt;&lt;strong&gt;&lt;span style="color:#000000;"&gt;Anuncio&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;        &lt;td valign="top" width="229"&gt;         &lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/codeplex2_5F00_4DE97B33.jpg"&gt;&lt;span style="color:#000000;"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="codeplex2" border="0" alt="codeplex2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/codeplex2_5F00_thumb_5F00_0C0295E5.jpg" width="79" height="37" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="219"&gt;&lt;span style="color:#000000;"&gt;Visual Studio 2010 Quick Reference Guidance&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="281"&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/02/vs-alm-rangers-gu-237-a-de-referencia-r-225-pida-de-visual-studio.aspx"&gt;&lt;span style="color:#000000;"&gt;[VS ALM Rangers] Guía de Referencia Rápida de Visual Studio&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="229"&gt;         &lt;p align="center"&gt;&lt;a title="http://vs2010quickref.codeplex.com/" href="http://vs2010quickref.codeplex.com/releases/view/48633"&gt;&lt;span style="color:#000000;"&gt;http://vs2010quickref.codeplex.com/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="219"&gt;&lt;span style="color:#000000;"&gt;Visual Studio TFS Branching Guide 2010&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="281"&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/02/vs-alm-rangers-branching-guidance.aspx"&gt;&lt;span style="color:#000000;"&gt;[VS ALM Rangers] Branching Guidance&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="229"&gt;         &lt;p align="center"&gt;&lt;a title="http://tfsbranchingguideiii.codeplex.com/" href="http://tfsbranchingguideiii.codeplex.com/releases/view/53444"&gt;&lt;span style="color:#000000;"&gt;http://tfsbranchingguideiii.codeplex.com/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="219"&gt;&lt;span style="color:#000000;"&gt;Visual Studio 2010 Architecture Tooling Guidance&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="281"&gt;&lt;a href="http://geeks.ms/blogs/ffagas/archive/2011/07/02/vs-alm-rangers-gu-237-a-de-arquitectura.aspx"&gt;&lt;span style="color:#000000;"&gt;[VS ALM Rangers] Guía de Arquitectura&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="229"&gt;         &lt;p align="center"&gt;&lt;a title="http://vsarchitectureguide.codeplex.com" href="http://vsarchitectureguide.codeplex.com/releases/view/59704"&gt;&lt;span style="color:#000000;"&gt;http://vsarchitectureguide.codeplex.com&lt;/span&gt;&lt;/a&gt;&lt;/p&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=197096" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/07/03/vs-alm-rangers-resumen-de-gu-237-as-en-espa-241-ol.aspx</link>
      <pubDate>Sun, 03 Jul 2011 00:17:00 GMT</pubDate>
    </item>
    <item>
      <title>[VS ALM Rangers] Visual Studio Build Customization Guidance</title>
      <description>&lt;table border="0" cellspacing="0" cellpadding="0" width="757"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="504"&gt;El objetivo principal de este proyecto de los Visual Studio ALM Rangers&amp;#160; es ofrecer una guía práctica basada en escenarios para la personalización y la implementación de actividades para Team Foundation Build 2010 tales cómo control de versiones, firma de código, y bifurcación.          &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Builcustom_5F00_2D70AD25.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="Builcustom" border="0" alt="Builcustom" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Builcustom_5F00_thumb_5F00_73BDED6D.jpg" width="479" height="165" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;A continuación una breve descripción de este proyecto en inglés:           &lt;br /&gt;          &lt;p&gt;&lt;b&gt;&lt;em&gt;Project Description&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;em&gt;This Visual Studio ALM Ranger project has the primary goal of delivering scenario based and hands-on lab guidance for the customization and deployment of Team Foundation Build 2010 activities such as versioning, code signing, and branching.&lt;/em&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;em&gt;What is in the downloads?&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;&lt;em&gt;&lt;b&gt;Guidance&lt;/b&gt; contains scenario based practical guidance, frequently asked questions and quick reference posters                 &lt;br /&gt;- &lt;/em&gt;&lt;em&gt;&lt;b&gt;Selected PDF&lt;/b&gt; contains guidance and quick reference posters in PDF format only.                 &lt;br /&gt;&lt;/em&gt;&lt;em&gt;- &lt;strong&gt;Complete&lt;/strong&gt; contains guidance, quick reference posters and localization files in all available formats. &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;&lt;b&gt;Hands-on Labs (HOL)&lt;/b&gt; includes:                 &lt;br /&gt;- &lt;/em&gt;&lt;em&gt;&lt;strong&gt;HOL documents&lt;/strong&gt; that provide walkthroughs of the technology, based on the guidance                 &lt;br /&gt;- &lt;/em&gt;&lt;em&gt;&lt;b&gt;HOL Package&lt;/b&gt; contains a HOL environment setup package allowing you to setup the HOL environment in your own environment                 &lt;br /&gt;- &lt;/em&gt;&lt;em&gt;&lt;b&gt;BRDLite&lt;/b&gt; Build Process Reference Template walk-through. &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;&lt;b&gt;Samples&lt;/b&gt; contains sample build process templates used by the team as part of the guidance. &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;&lt;b&gt;Videos&lt;/b&gt; which showcase the guidance in quick 5-10min videos. &lt;/em&gt;&lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;&lt;em&gt;The &lt;/em&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/11/04/requirements-management-for-ranger-projects-epics-team-and-personas.aspx"&gt;&lt;em&gt;Epics&lt;/em&gt;&lt;/a&gt;&lt;em&gt; included in the guidance are:&lt;/em&gt;&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;&lt;em&gt;Practical guidance and tooling to simplify the customization of Team Foundation Build &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;Practical guidance to use Team Foundation Build process templates to automate build and non-build scenarios in Microsoft environments &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;Practical guidance to enable simple and flexible deployment of applications and their data stores &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;Practical guidance for Activities to empower developers and build engineers &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;Quality hands-on labs that complement the guidance and effectively guide the user through the features &lt;/em&gt;&lt;/li&gt;            &lt;li&gt;&lt;em&gt;Visualization of the guidance using quick reference posters &lt;/em&gt;&lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;&lt;b&gt;&lt;em&gt;Team&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;em&gt;Adimulam Sudheer, André Dias, Bill Heys, Bijan Javidi, Bob Hardister, Brian Blackman, Brian Minisi, Daniel Franco Abrahão de Oliveira, David Corbin, Ed Blankenship, Ewald Hofman, Fabio Casado, Francisco Xavier Fagas Albarracín, Giulio Vian, Hassan Fadili, Jahangeer Mohammed, Jeff Bramwell, Jens K. Süßmeyer, Jim Lamb, John Jacob (JJ), Joseph Abukhader, Leonard S. Woody III, Mathias Olausson, Mike Douglas , Mike Fourie, Nico Orschel, Oliver Hilgers, Patricia Wagner, Petr Moravek, Pierre Donyegro, Richard Fennell, Silfarney Wallace, Steven Lange, Stuart Preston, Sven Hubert, Thomas Schissler, Tiago Pascoal, Tim Star, William Bartholomew, Willy-Peter Schaub&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ATE_5F00_5119AEF2.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;padding-top:0px;" title="ATE" border="0" alt="ATE" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/ATE_5F00_thumb_5F00_395251BF.jpg" width="216" height="210" /&gt;&lt;/a&gt;&amp;#160;&lt;em&gt;… “Rosie”, African Tawny Eagle, from &lt;/em&gt;&lt;a href="http://birdsofprey.co.za/"&gt;&lt;em&gt;http://birdsofprey.co.za/&lt;/em&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;          &lt;table border="1" cellspacing="1" cellpadding="1" width="267"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="57"&gt;                 &lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Channel9_5F00_70B862ED.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Channel9" border="0" alt="Channel9" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/Channel9_5F00_thumb_5F00_2D20B1CB.png" width="31" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td valign="top" width="205"&gt;Visual Studio ALM Rangers Build Customization Guidance – ShowCase                  &lt;br /&gt;                  &lt;br /&gt;                  &lt;p&gt;1.&lt;a href="http://channel9.msdn.com/posts/ATEOverview"&gt;Overview of the Visual Studio Architecture Guidance                      &lt;br /&gt;&lt;/a&gt;2. &lt;a href="http://channel9.msdn.com/posts/ATEBuildandDeploy1"&gt;Build and Deploy 1 - Build and Local Deploy                      &lt;br /&gt;&lt;/a&gt;3. &lt;a href="http://channel9.msdn.com/posts/ATEBuildandDeploy2"&gt;Build and Deploy 2 - Automate Build and Deploy to Integration&lt;/a&gt;                     &lt;br /&gt;4. &lt;a href="http://channel9.msdn.com/posts/ATEBuildandDeploy3"&gt;Build and Deploy 3 - Automate Integration Test                      &lt;br /&gt;&lt;/a&gt;5. &lt;a href="http://channel9.msdn.com/posts/ATEBuildandDeploy4"&gt;Build and Deploy 4 - Manual Deploy to Quality Assurance&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;              &lt;tr&gt;               &lt;td valign="top" width="60"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/codeplex2_5F00_32FB5564.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="codeplex2" border="0" alt="codeplex2" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/codeplex2_5F00_thumb_5F00_10C349DE.jpg" width="41" height="19" /&gt;&lt;/a&gt;&lt;/td&gt;                &lt;td valign="top" width="203"&gt;&lt;a href="http://rabcg.codeplex.com/"&gt;Visual Studio ALM Rangers Build Customization Guidance – Content&lt;/a&gt;                   &lt;br /&gt;&lt;/td&gt;             &lt;/tr&gt;              &lt;tr&gt;               &lt;td valign="top" width="62"&gt;                 &lt;p align="center"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/TOC_5F00_170A206C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="TOC" border="0" alt="TOC" src="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/ffagas/TOC_5F00_thumb_5F00_61915E46.png" width="19" height="19" /&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td valign="top" width="201"&gt;&lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/06/17/toc-build-customization-guide-blog-posts-and-reference-sites.aspx"&gt;Visual Studio ALM Rangers Build Customization Guidance – TOC&lt;/a&gt;&lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=197095" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/ffagas/archive/2011/07/03/vs-alm-rangers-visual-studio-build-customization-guidance.aspx</link>
      <pubDate>Sat, 02 Jul 2011 23:49:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo Obtener los últimos Identity (Autonumérico) Insertados</title>
      <description>&lt;p&gt;Siempre buscando la optimizaci&amp;oacute;n de consultas debemos intentar siempre el uso de operaciones de conjunto sobre las operaciones fila a fila, &amp;eacute;ste es uno de los ejemplos en donde usando T-Sql podemos obtener los &amp;uacute;ltimos IDs generados a partir de la inserci&amp;oacute;n en una las tablas que tienen Identity, &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;DECLARE @output TABLE (id int)&amp;nbsp; &lt;span style="color:#668866;"&gt;--Tabla para capturar los IDs generados&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Insert into A (fname, lname) &lt;span style="color:#668866;"&gt;-- Tabla en la que insertaremos los datos&lt;/span&gt; &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;OUTPUT inserted.ID INTO @output &lt;span style="color:#668866;"&gt;--Captura de los IDs generados con el uso de la palabra clave OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;SELECT fname, lname FROM B &lt;span style="color:#668866;"&gt;-- Consulta que trae los datos a insertar&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;select * from @output &lt;span style="color:#668866;"&gt;-- Presentando resultados (opcional)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Mediante el uso de &amp;eacute;sta t&amp;eacute;cnica podemos aumentar notablemente la velocidad de nuestra consultas y procedimientos almacenados&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=195888" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/06/10/code-obtener-los-250-ltimos-identity-insertados.aspx</link>
      <pubDate>Fri, 10 Jun 2011 19:41:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Optimización de Consultas Parte 3 - Recompilación de procedimientos Almacenados</title>
      <description>&lt;p&gt;Cada vez que se ejecuta un procedimiento almacenado en SqlServer por primera vez, se optimiza y su plan de ejecuci&amp;oacute;n se compila y se almacena en el cach&amp;eacute; de SqlServer. Cada&amp;nbsp; vez que el procedimiento almacenado se ejecuta luego de ser almacenado en el cach&amp;eacute;, usar&amp;aacute; el mismo plan de ejecuci&amp;oacute;n, eliminando la necesidad de compilar y de almacenar el plan de ejecuci&amp;oacute;n de dicho procedimiento cada vez que se ejecuta. Si &amp;eacute;ste procedimiento se ejecuta 1000 o m&amp;aacute;s veces por d&amp;iacute;a, los recursos de hardware se optimizan al ahorrarse dichos pasos.&lt;br /&gt;&lt;br /&gt;Si los par&amp;aacute;metros dentro del procedimiento almacenado son id&amp;eacute;nticos en el Where, entonces reusar el plan de ejecuci&amp;oacute;n tiene mucho sentido. Pero qu&amp;eacute; pasa si los valores de los par&amp;aacute;metros en cada ejecuci&amp;oacute;n cambian?, que pasa si el tama&amp;ntilde;o del resultado varia notablemente (Columnas y Filas), que sucede si para unos par&amp;aacute;metros la b&amp;uacute;squeda &amp;oacute;ptima es una b&amp;uacute;squeda por &amp;iacute;ndice, pero para otros valores el mejor camino es un table scan?&lt;br /&gt;&lt;br /&gt;Todo eso depende de que tan gen&amp;eacute;ricos sean los par&amp;aacute;metros, de que tan bien est&amp;eacute; definida la funcionalidad del procedimiento almacenado si est&amp;aacute;n definidos de tal manera que no recarguemos su funcionalidad y que los resultados sean parecidos aun los valores de los par&amp;aacute;metros sean diferentes el procedimiento ejecutar&amp;aacute; de manera &amp;oacute;ptima y obtendr&amp;aacute; todos los beneficios mencionados anteriormente. Pero para el caso contrario, reutilizar el plan de ejecuci&amp;oacute;n puede no ser lo &amp;oacute;ptimo, como resultado la consulta se ejecutar&amp;aacute; m&amp;aacute;s lentamente que si se creara din&amp;aacute;micamente su plan de ejecuci&amp;oacute;n.&lt;br /&gt;&lt;br /&gt;En la mayor&amp;iacute;a de los casos, no es una cuesti&amp;oacute;n de la cual preocuparse, pero si se hace la pregunta, por qu&amp;eacute; mi procedimiento almacenado ejecuta bien en el dise&amp;ntilde;ador de consultas pero toma mucho tiempo en producci&amp;oacute;n, &amp;eacute;ste puede ser el caso. Siempre teniendo en cuenta que el dise&amp;ntilde;o del procedimiento almacenado, junto con granularidad, ofrecen la mejor estrategia para dise&amp;ntilde;arlos y claro para mantenerlos&lt;br /&gt;&lt;br /&gt;C&amp;oacute;mo solucionar el problema:&lt;br /&gt;&lt;br /&gt;1. Aplicar &lt;a title="Recompilaci&amp;oacute;n" href="http://msdn.microsoft.com/es-es/library/ms190439.aspx"&gt;recompilaci&amp;oacute;n &lt;/a&gt;a todos los procedimientos peri&amp;oacute;dicamente&lt;br /&gt;Ejecutar con el procedimiento almacenado del sistema &lt;a title="sp_recompile" href="http://msdn.microsoft.com/en-us/library/aa238892%28v=sql.80%29.aspx"&gt;sp_recompile&lt;/a&gt; sobre todos los procedimientos almacenados de la base de datos (Cada dos o tres meses)&lt;br /&gt;&lt;br /&gt;2. Crear los procedimientos almacenados que consideremos que sean candidatos para sufrir este problema con la opci&amp;oacute;n With Recompile, teniendo en cuenta que cada vez que ejecutemos el procedimiento almacenado el mismo se recompilar&amp;aacute; (se generar&amp;aacute; un nuevo plan de ejecuci&amp;oacute;n)&lt;br /&gt;CREATE PROCEDURE MiProcedimiento&lt;br /&gt;WITH RECOMPILE&lt;br /&gt;AS&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;3. Si el caso en donde los resultados cambian demasiado dependiendo de valores espec&amp;iacute;ficos y plenamente identificados podemos ejecutarlo usando la opci&amp;oacute;n with recopile de exec: &lt;br /&gt;EXECUTE MiProcedimiento @p2 = &amp;#39;A&amp;#39; WITH RECOMPILE;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;4. Query Hint RECOMPILE&lt;br /&gt;A partir de SqlServer 2005 se introdujo RECOMPILE como query hint, lo que logra este hint es que el analizador de consulta descarte cualquier plan de ejecuci&amp;oacute;n previamente generado para esa consulta dentro del procedimiento almacenado y recompile s&amp;oacute;lo esta consulta&lt;br /&gt;&lt;br /&gt;5. Creando &lt;a title="Gu&amp;iacute;as de Plan" href="http://msdn.microsoft.com/es-es/library/ms190417.aspx"&gt;Gu&amp;iacute;as de Plan de Ejecuci&amp;oacute;n&lt;/a&gt;&lt;br /&gt;Permite realizar cambios administrativos sobre procedimientos almacenados que ya han sido creados en la base de datos que no se puede o no se quiere modificar para agregar alg&amp;uacute;n tipo de optimizaci&amp;oacute;n como la mencionada. Esto se logra forzando hints sobre las consultas o fijando un plan de ejecuci&amp;oacute;n diferente a dicho procedimiento o consulta.&lt;br /&gt;&lt;br /&gt;La creaci&amp;oacute;n de gu&amp;iacute;as de plan es una opci&amp;oacute;n avanzada de administraci&amp;oacute;n es recomendado leer detenidamente la documentaci&amp;oacute;n sobre el tema y luego observar los casos en donde sea prudente aplicarlo&lt;br /&gt;Debemos usar &amp;eacute;ste tipo de soluci&amp;oacute;n cautelosamente dado que usar recompile, aunque nos aseguramos que cada vez el plan de ejecuci&amp;oacute;n generado es correcto, hace que perdamos los muy buenos beneficios de tener un plan de ejecuci&amp;oacute;n almacenado para el procedimiento y nos gu&amp;iacute;a hacia un mejor dise&amp;ntilde;o de los procedimientos almacenados que incluiremos en nuestros sistemas&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=187495" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/01/17/code-optimizaci-243-n-de-consultas-parte-2-recompilaci-243-n-de-procedimientos-almacenados.aspx</link>
      <pubDate>Mon, 17 Jan 2011 23:08:00 GMT</pubDate>
    </item>
    <item>
      <title>[Info] Optimización de Consultas Parte 1 - Generalidades</title>
      <description>&lt;p&gt;En la siguientegr&amp;aacute;fica se presenta el esquema de ejecuci&amp;oacute;n de consultas en SqlServer&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Ejecuci_F300_n-Consultas.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Ejecuci_F300_n-Consultas.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;From y Join&lt;/b&gt;&lt;br /&gt;1. Usar Hints &lt;br /&gt;Podemos utilizar hints de consultas tales como (nolock) sobre las tablas que queremos consultar para cambiar el modo de acceso de readcommited a &lt;a target="_blank" title="readuncommited" href="http://msdn.microsoft.com/es-co/library/ms187373.aspx"&gt;readuncommited &lt;/a&gt;--ADVERTENCIA: Utilizar este hint puede traer problemas de datos, tales como lecturas sucias o registros fantasma.&lt;/p&gt;
&lt;p&gt;El uso de hints debe realizarse con especial cuidado y teniendo en mente las consecuencias de los mismos, asimismo, el optimizador de consultas podr&amp;aacute; f&amp;aacute;cilmente encontrar el mejor camino para retornar la consulta dado que utiliza informaci&amp;oacute;n estad&amp;iacute;stica, cach&amp;eacute;, entre otros elementos para devolver los resultados.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Otra t&amp;eacute;cnica que podemos usar antes del Where es poner las condiciones del where (cuando sean aplicables) dentro del mismo Join, es decir: &lt;br /&gt;&lt;i&gt;select a.Id, from tabla1 a inner join tabla2 b on a.id = b.id where b.cantidad &amp;gt; 50 &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;puede ser reescrito como:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;select a.Id, from tabla1 a inner join tabla2 b on a.id = b.id and b.cantidad &amp;gt; 50 &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Esto aplica especialmente para sqlServer 2005 y versiones anteriores, el analizador de SqlServer 2008 se vale de su algoritmia avanzada para determinar cu&amp;aacute;l es el mejor camino entre estas dos opciones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Favorecer la l&amp;oacute;gica y operaciones por Conjuntos&lt;br /&gt;Las operaciones por conjuntos implican la realizaci&amp;oacute;n de operaciones por bloques, para lo cual Sql est&amp;aacute; optimizado:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.1.&amp;nbsp; Evitar el uso de funciones escalares en las consultas para cada campo (en cualquier parte de la consulta), dado que la ejecuci&amp;oacute;n se realiza una por una, lo cual no favorece las operaciones por bloques.&lt;br /&gt;3.2. Evitar al MAXIMO el uso de cursores.&lt;br /&gt;3.3. Estimular el uso de funciones de usuario que devuelven tablas, pues se calculan primero y luego se aplican a la consulta favoreciendo operaciones de conjuntos.&lt;br /&gt;3.4. Asimismo, estimular el uso de expresiones CTE:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Permite la reutilizaci&amp;oacute;n de consultas, usando el join, de esta manera consultamos dos (2) veces la misma tabla&lt;br /&gt;&lt;i&gt;select a.Id from tabla1 ainner join tabla2 b on a.Tipo = B.IdTIpo &lt;br /&gt;inner join tabla2 c on a.Tipo2 = C.IdTIpo&lt;/i&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;con CTE, solo una vez:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;i&gt;declare @tabla1 table (Id int, TipoA int, TipoB int) --Solo por ejemplo&lt;br /&gt;declare @tabla2 table (IdTipo int) --Solo por ejemplo&lt;br /&gt;;with Tabla(Id)&lt;br /&gt;as(&lt;br /&gt;select IdTipo from @tabla2&lt;br /&gt;)&lt;br /&gt;select * from @tabla1 a inner join Tabla &lt;br /&gt;on a.TipoA = tabla.id&lt;br /&gt;inner join @tabla1 b on b.TipoB = tabla.id&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Where&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. Escribir las expresiones l&amp;oacute;gicas de menos completa a m&amp;aacute;s compleja, es decir, es mejor:&lt;br /&gt;&lt;i&gt;select a.Id, from tabla1 a inner join tabla2 b on a.id = b.id and b.cantidad &amp;gt; 50 and nombre like &amp;#39;%abc%&amp;#39; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;que usar:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;select a.Id, from tabla1 a inner join tabla2 b on a.id = b.id a nombre like &amp;#39;%abc%&amp;#39; and b.cantidad &amp;gt; 50 &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Esto se debe a la evaluaci&amp;oacute;n de la l&amp;oacute;gica tipo &lt;a target="_blank" title="Corto Circuito (Ingl&amp;eacute;s)" href="http://en.wikipedia.org/wiki/Short-circuit_evaluation"&gt;corto circuito&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Select &lt;/b&gt;&lt;br /&gt;1. Evitar el uso de funciones escalares por cada campo.&lt;br /&gt;2. Usar Case puede ser una buena alternativa para devolver resultados directamente al usuario, usarlos con precauci&amp;oacute;n, si es posible, reemplazarlos con case del lado del cliente (Reporting Services, por ejemplo).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Order By&lt;/b&gt;&lt;br /&gt;1. Evitar al M&amp;Aacute;XIMO los ordenamientos innecesarios dentro de las consultas, si se observan los planes de ejecuci&amp;oacute;n de las consultas se encuentra que es una de las cosas que m&amp;aacute;s consume buena parte del tiempo de ejecuci&amp;oacute;n de la consulta; se recomienda ordenar, en la mayor&amp;iacute;a de los casos, del lado del cliente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Result Set&lt;/b&gt;&lt;br /&gt;1. Evitar al M&amp;Aacute;XIMO el uso del &lt;i&gt;select *&lt;/i&gt;, limitar la cardinalidad del resultado (tiene como resultado) permite, genera, mejora el uso de...? mejoras en el uso de memoria y latencia de red, dado que los resultados son s&amp;oacute;lo aquellos que necesitamos, a la vez que evitamos que el analizador de consultas deba determinar din&amp;aacute;micamente qu&amp;eacute; campos usar en el conjunto de resultados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grouping and Aggregation&lt;/b&gt;&lt;br /&gt;Una vez finalizada la etapa de la consulta en donde se obtienen los resultados iniciales, el motor procede a realizar el agrupamiento y agregaci&amp;oacute;n de los resultados (agregaci&amp;oacute;n: aplicar una funci&amp;oacute;n a un grupo)&lt;br /&gt;Debemos evitar al m&amp;aacute;ximo realizar Agrupaciones y Agregaciones del lado de la base de datos, dado que son operaciones costosas, esto es especialmente cierto para operaciones de reportes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Having&lt;/b&gt;&lt;br /&gt;S&amp;oacute;lo debe ser aplicado para filtrar sobre las funciones de agregaci&amp;oacute;n, NO debe ser utilizado para filtrar las filas de la consulta, lo cual se debe incluir en el Where de la consulta. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;OTRAS RECOMENDACIONES&lt;br /&gt;&lt;/b&gt;&lt;a target="_blank" title="CLR" href="http://geeks.ms/blogs/fangarita/archive/2010/08/09/presentaci-243-n-sqlserver-clr.aspx"&gt;Usar CLR&lt;/a&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Programaci&amp;oacute;n .Net para para crear procedimientos almacenados, funciones de usuario y agregaciones, etc. Usarlo cuando se requiera realizar c&amp;aacute;lculos avanzados del lado de la base de datos, en ning&amp;uacute;n momento debe usarse como reemplazo para las operaciones a acceso a datos.&lt;br /&gt;&lt;br /&gt;Particionamiento de Datos&lt;br /&gt;Crear grupos de archivos en diferentes discos y ubicar en ellos las tablas de mayor uso, lo cual favorece las operaciones INNER JOIN&amp;nbsp; (Versi&amp;oacute;n inferior a la enterprise)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Particionamiento de Vertical de Filas&lt;br /&gt;Crear particionamiento de filas usando funciones de particionamiento para ubicar asimismo las filas en diferentes grupos de archivos y optimizar el acceso a los datos en las operaciones JOIN (versi&amp;oacute;n Enterprise)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dividir las consultas en consultas m&amp;aacute;s peque&amp;ntilde;as&lt;br /&gt;Usando variables tipo tabla podemos realizar consultas preliminares sobre algunas de las tablas que participan en las operaciones JOIN o LEFT JOIN, de esta manera cargaremos a memoria (luego de cierto l&amp;iacute;mite de filas las variables tipo tabla tambi&amp;eacute;n pasan a disco, por lo que debemos ubicar en ellas solo las tablas que relativamente tengan pocos registros: menos de 100,000)&amp;nbsp; de manera anticipada, permiti&amp;eacute;ndonos la reutilizaci&amp;oacute;n de las mismas, con la ventaja que cuando salen de &amp;aacute;mbito se destruyen autom&amp;aacute;ticamente (no hay que realizar un drop como a las tablas temporales). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En pr&amp;oacute;ximos art&amp;iacute;culos extender&amp;eacute; estos y otros temas&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDY LEANDRO ANGARITA CASTELLANOS&lt;br /&gt;Sql Server MVP&lt;br /&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=187467" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/01/17/info-optimizaci-243-n-de-consultas-parte-1-generalidades.aspx</link>
      <pubDate>Mon, 17 Jan 2011 15:54:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Optimización de Consultas Parte 2 - Anti Semi joins</title>
      <description>&lt;p&gt;Como todos los temas de optimizaci&amp;oacute;n las soluciones presentadas en &amp;eacute;ste art&amp;iacute;culo deben probarse, 
intentar varias alternativas y luego decidir dependiendo de los 
resultados y especialmente de la evoluci&amp;oacute;n de los datos, es decir, dependiendo del
 momento del ciclo de vida de la base de datos tendremos cierto uso de 
la informaci&amp;oacute;n (por ejemplo durante procesos de migraci&amp;oacute;n) y luego 
tendremos otro tipo (en Producci&amp;oacute;n, cuando cierto tipo de producto salga
 de circulaci&amp;oacute;n, etc.)&lt;/p&gt;
&lt;p&gt;El proceso de optimizaci&amp;oacute;n y mantenimiento es algo continuo y 
debe estar acorde a las necesidades y cambios del negocio&lt;/p&gt;
&lt;p&gt;Pimero, qu&amp;eacute; es un &lt;b&gt;SEMI JOIN&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Semi-Join.png"&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Semi-Join.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Semi-Join.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HumanResources.Employee.BusinessEntityID, MyEmployees.EmployeeID&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HumanResources.Employee LEFT OUTER JOIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyEmployees ON HumanResources.Employee.BusinessEntityID = MyEmployees.EmployeeID&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Es cuando queremos hacer un left (o Right join) con otra(s) tabla(s) y queremos ver qu&amp;eacute; registros figuran en la primera tabla (HumanResources.Employee) y cuales en la segunda(MyEmployees)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Si en la segunda tabla no existe dicho registro se presentar&amp;aacute; NULL como se v&amp;eacute; en la gr&amp;aacute;fica&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ahora, Definamos un &lt;b&gt;ANTI SEMI JOIN&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Anti-Semi-Join.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x437/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Anti-Semi-Join.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HumanResources.Employee.BusinessEntityID, MyEmployees.EmployeeID&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HumanResources.Employee LEFT OUTER JOIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyEmployees ON HumanResources.Employee.BusinessEntityID = MyEmployees.EmployeeID&lt;br /&gt;WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (MyEmployees.EmployeeID IS NULL)&lt;/p&gt;
&lt;p&gt;Queremos encontrar los registros que est&amp;eacute;n en la primera tabla (HumanResources.Employee) que NO&amp;nbsp; est&amp;eacute;n en la segunda tabla (MyEmployee)&lt;/p&gt;
&lt;p&gt;&amp;Eacute;sta consulta cumple su cometido pero analicemos a fondo su funcionamiento, realiza el Left Join que mas pesado que realizar un inner join normal y filtra los resultados para la columna null&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ahora, qu&amp;eacute; &lt;b&gt;ALTERNATIVA &lt;/b&gt;tenemos para &amp;eacute;ste caso:&lt;/p&gt;
&lt;p&gt;Usaremos la funci&amp;oacute;n &lt;a target="_blank" title="Exists" href="http://technet.microsoft.com/es-es/library/ms188336.aspx"&gt;Exists&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.BusinessEntityID&lt;br /&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HumanResources.Employee a&lt;br /&gt;where not exists(select EmployeeID from MyEmployees b where a.BusinessEntityID = b.EmployeeID)&lt;/p&gt;
&lt;p&gt;Observemos la comparaci&amp;oacute;n entre el primer m&amp;eacute;todo y la alternativa:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Comparacion.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/Comparacion.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;El costo relativo para el batch es el mismo, y aparentemente tienen&amp;nbsp; el mismo costo, pero observemos 2 cosas interesantes sobre &amp;eacute;ste plan de ejecuci&amp;oacute;n, primero es que de la primera manera tenemos un filtro, es de recordar que los ordenamientos, las agrupaciones y los filtros son las operaciones m&amp;aacute;s costosas dentro de una consulta; en la segunda parte ejecutando con Not Exists, vemos que el analizador identifica que es un Left Anti Semi Join, por lo cual autom&amp;aacute;ticamente aplica las optimizaciones para este caso y luego realiza las operaciones adicionales de la consulta&lt;/p&gt;
&lt;p&gt;Usando repetidamente &amp;eacute;sta t&amp;eacute;cnica, especialmente para consultas que impliquen muchos registros puede aumentar el rendimiento de la misma a la vez que permite una facil escritura y mantenimiento e incluso control sobre la consulta a realizar&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDDY LEANDRO ANGARITA CASTELLANOS&lt;/b&gt; &lt;br /&gt;Sql Server MVP&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.ms/controlpanel/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;/a&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=187460" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/01/17/code-optimizaci-243-n-de-consultas-parte-i-anti-semi-joins.aspx</link>
      <pubDate>Mon, 17 Jan 2011 15:13:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Crear una tabla a partir de un texto separado por comas (CSV)</title>
      <description>&lt;p&gt;Ahora con la aparici&amp;oacute;n de los par&amp;aacute;metros tipo tabla en SqlServer, se elimina la necesidad de crear parametros complejos o de trucos para enviar informaci&amp;oacute;n hacia los procedimientos almacenados, pero para quienes no quieren enviar esta informaci&amp;oacute;n, crear los tipos de datos que se requieren para recibir los par&amp;aacute;metros tipo tabla, presento una alternativa para ello en varias aproximaciones&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Funci&amp;oacute;n de usuario para la generaci&amp;oacute;n de Tablas&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;--USO: select * from fnCSV2Table(&amp;#39;1,2,3,4,5,6,7,8&amp;#39;,default)&lt;br /&gt;--Convierte una CSV a una tabla, lo que facilita las consultas &lt;br /&gt;--Reduce la necesidad de consultas din&amp;aacute;micas dentro de los procedimientos almacenados&lt;br /&gt;create function fnCSV2Table(@CSV varchar(max), @Separator char(1) = &amp;#39;,&amp;#39;)&lt;br /&gt;returns @list table (data int)&lt;br /&gt;as&lt;br /&gt;Begin&lt;br /&gt;	declare @SecondIndex int&lt;br /&gt;	declare @FirtsIndex int&lt;br /&gt;	&lt;br /&gt;	set @SecondIndex = charindex(@Separator,@CSV)&lt;br /&gt;	set @FirtsIndex = 0&lt;br /&gt;	&lt;br /&gt;	if @SecondIndex &amp;gt; 0 set @CSV = @CSV + @Separator&lt;br /&gt;	&lt;br /&gt;	while (@SecondIndex &amp;gt; 0)&lt;br /&gt;	Begin&lt;br /&gt;		insert into @list values(substring(@CSV,@FirtsIndex,@SecondIndex - @FirtsIndex))&lt;br /&gt;		set @FirtsIndex = @SecondIndex + 1&lt;br /&gt;		set @SecondIndex = charindex(@Separator,@CSV,@FirtsIndex)&lt;br /&gt;	End&lt;br /&gt;	if @FirtsIndex =0 and len(@CSV)&amp;gt;0 &lt;br /&gt;		insert into @list values(@CSV)&lt;br /&gt;	return&lt;br /&gt;End&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;--USO: select * from fnConvertCSV2TextTable(&amp;#39;1,2,3,4,5,6,7,8&amp;#39;,default)&lt;br /&gt;--Convierte una CSV a una tabla (tipo texto), lo que facilita las consultas &lt;br /&gt;--Reduce la necesidad de consultas din&amp;aacute;micas dentro de los procedimientos almacenados&lt;br /&gt;create function fnConvertCSV2TextTable(@CSV varchar(max), @Separator char(1) = &amp;#39;,&amp;#39;)&lt;br /&gt;returns @list table (data varchar(8000))&lt;br /&gt;with encryption&lt;br /&gt;as&lt;br /&gt;Begin&lt;br /&gt;	declare @SecondIndex int&lt;br /&gt;	declare @FirtsIndex int&lt;br /&gt;	&lt;br /&gt;	set @SecondIndex = charindex(@Separator,@CSV)&lt;br /&gt;	set @FirtsIndex = 0&lt;br /&gt;	&lt;br /&gt;	if @SecondIndex &amp;gt; 0 set @CSV = @CSV + @Separator&lt;br /&gt;	&lt;br /&gt;	while (@SecondIndex &amp;gt; 0)&lt;br /&gt;	Begin&lt;br /&gt;		insert into @list values(substring(@CSV,@FirtsIndex,@SecondIndex - @FirtsIndex))&lt;br /&gt;		set @FirtsIndex = @SecondIndex + 1&lt;br /&gt;		set @SecondIndex = charindex(@Separator,@CSV,@FirtsIndex)&lt;br /&gt;	End	&lt;br /&gt;	if @FirtsIndex =0 and len(@CSV)&amp;gt;0 &lt;br /&gt;		insert into @list values(@CSV)&lt;br /&gt;	return&lt;br /&gt;End&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Es posible que no sea la aproximaci&amp;oacute;n mas &amp;oacute;ptimizada desde el punto de vista programaci&amp;oacute;n T-Sql, pero si es seguro, soluciona el problema de una manera simple y facil de administrar&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C&amp;oacute;mo Usuarla&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;Una vez convertida a tabla podemos usarla en un join para filtrar los datos que queremos consultar, podemos usar Cross Apply para aplicar a cada registro la funci&amp;oacute;n, etc., la idea es generar una tabla y poderla utilizar facilmente dentro de nuestro c&amp;oacute;digo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDDY LEANDRO ANGARITA CASTELLANOS&lt;/b&gt; &lt;br /&gt;Sql Server MVP&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=186722" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2011/01/03/code-crear-una-tabla-a-apartir-de-un-texto-se.aspx</link>
      <pubDate>Mon, 03 Jan 2011 22:24:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo generar N Filas Rápido Sql Server</title>
      <description>&lt;p&gt;Como siempre, una de las cosas que mas se necesita al crear un procedimiento es generar un n&amp;uacute;mero de determinado de filas para poderlas combinar con alguna otra tabla, &amp;eacute;sta t&amp;eacute;cnica presenta c&amp;oacute;mo crear una tabla que cuente de un n&amp;uacute;mero a otro, en incrementos de m&amp;aacute;nera eficiente&lt;/p&gt;
&lt;p&gt;&lt;b&gt;LA PRIMERA APROXIMACI&amp;Oacute;N&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;declare @StartNumber int, @Nrows int, @increment int&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;set @StartNumber = 1&lt;br /&gt;set @Nrows  = 1000000&lt;br /&gt;set @increment = 1&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;declare @q table  (i int)&lt;br /&gt;declare @index int&lt;br /&gt;&lt;br /&gt;set @index = @StartNumber &lt;br /&gt;&lt;br /&gt;while @index &amp;lt; @Nrows &lt;br /&gt;Begin&lt;br /&gt;	insert into @q values(@index)&lt;br /&gt;	set @index = @index + @increment &lt;br /&gt;End&lt;br /&gt;&lt;br /&gt;select i from @q &lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;En &amp;eacute;ste punto, se genera el resultado y tiene los par&amp;aacute;metros que se podr&amp;iacute;an esperar: el Inicio, El n&amp;uacute;mero de filas y el Incremento, pero al ejecutarlo con un mill&amp;oacute;n de filas, toma (en mi computador) 25 segundos, lo cual es muy lento, sin emabrgo &amp;eacute;sta aproximaci&amp;oacute;n tendr&amp;iacute;aa el l&amp;iacute;mite de registros del tipo de datos que usemos como par&amp;aacute;metro, es decir, se puede llegar hasta el m&amp;aacute;ximo que permite un entero, o el m&amp;aacute;ximo que soporte un bigint, lo cual es bastante grande, pero mucho mas lento al hacerlo uno por uno. Ahora vamos a investigar otra alternativa que nos permitir&amp;aacute; generar los registros mucho m&amp;aacute;s r&amp;aacute;pido usando otras t&amp;eacute;cnicas&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SEGUNDA APROXIMACI&amp;Oacute;N&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;declare @StartNumber int, @NumberOfRows int, @Increment int&lt;br /&gt;&lt;br /&gt;set @StartNumber = 1&lt;br /&gt;set @NumberOfRows = 1000000&lt;br /&gt;set @Increment = 1&lt;br /&gt;&lt;br /&gt;declare @Rows table (i int)&lt;br /&gt;&lt;br /&gt;Declare @NumGen Table (Num int)	&lt;br /&gt;Declare @cnt int	&lt;br /&gt;Set @cnt = @StartNumber&lt;br /&gt;While @cnt &amp;lt;= 100 &lt;br /&gt;Begin		&lt;br /&gt;	Insert Into @NumGen values (@cnt)&lt;br /&gt;	Set @cnt = @cnt + @Increment&lt;br /&gt;End	&lt;br /&gt;set @StartNumber = @StartNumber - @Increment &lt;br /&gt;&lt;br /&gt;insert into @Rows&lt;br /&gt;Select @StartNumber + RowNum	From 	&lt;br /&gt;(&lt;br /&gt;Select Row_Number() Over (Order By N1.Num) As RowNum&lt;br /&gt;From @NumGen N1, @NumGen N2, @NumGen N3, @NumGen N4, @NumGen N5, @NumGen N6, @NumGen N7, @NumGen N8, @NumGen N9, @NumGen N10) RowNums	&lt;br /&gt;Where RowNum &amp;lt;= @NumberOfRows&lt;br /&gt;&lt;br /&gt;select * from @Rows&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Lo que sucede es que estamos haciendo una generaci&amp;oacute;n inicial de una tabla hasta 100 normalmente (tambi&amp;eacute;n porque para casos en donde la tabla a generar es mas corta) y luego multiplicando por conjuntos &amp;eacute;ste esfuerzo con el fin de no generar una a una las filas sino por bloques de a 100 filas y en &amp;eacute;ste caso 10 bloques de a 100 filas, al hacer &amp;eacute;sta combinaci&amp;oacute;n aplicamos una combinaci&amp;oacute;n lo cual nos da un m&amp;aacute;ximo de filas a generar de 100^10, lo cual suficiente en la mayor&amp;iacute;a de los casos. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Usando nuestra soluci&amp;oacute;n podemos generar la funci&amp;oacute;n con la firma: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;alter function GenTable(@StartNumber int, @NumberOfRows int, @Increment int = 1)&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Y podemos utilizarlo para crear un ejemplo: Imaginemos que queremos agregar hora a hora las siguientes 12 horas a las fechas de actividad de un cliente, c&amp;oacute;mo se podr&amp;iacute;a hacer? &lt;/p&gt;
&lt;p&gt;&lt;b&gt;EJEMPLO DE USO&lt;/b&gt;&lt;/p&gt;
&lt;pre&gt;--Tabla que proviene de la Base de Datos simulada--&lt;br /&gt;declare @fechas table (IdCliente int, Fecha datetime)&lt;br /&gt;&lt;br /&gt;insert into @fechas values &lt;br /&gt;(1, &amp;#39;2001-01-20 08:23:20&amp;#39;), &lt;br /&gt;(2, &amp;#39;2001-02-24 18:23:20&amp;#39;), &lt;br /&gt;(3, &amp;#39;2001-03-23 12:23:20&amp;#39;)&lt;br /&gt;--Fin Tabla que proviene de la Base de Datos simulada--&lt;br /&gt;&lt;br /&gt;select * from @fechas &lt;br /&gt;&lt;br /&gt;insert into @fechas &lt;br /&gt;select IdCliente, DATEADD(hh,ids.i,fecha) as FechasHoras  from @fechas &lt;br /&gt;cross join (select i from dbo.GenTable(1,12,default)) Ids&lt;br /&gt;order by FechasHoras&lt;br /&gt;&lt;br /&gt;select * from @fechas &lt;br /&gt;order by Fecha &lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Aplicamos cada registro generado a cada una de las filas (CrossJoin) que provienen de la tabla y luego usamos la funci&amp;oacute;n DateAdd para hacer el trabajo fila a fila, sin usar cursores, sin necesidad de recorrer la variable tipo tabla y como siempre favoreciendo las operacione de conjunto sobre las operaciones realizadas fila a fila &lt;/p&gt;
&lt;p&gt;&amp;nbsp;Por supuesto exiiten otras alternattivas se puede generar usando CTE, la cuesti&amp;oacute;n es la bandera MAXRECURSION, la cual limita el rango de acci&amp;oacute;n de la soluci&amp;oacute;n planteada a cierto n&amp;uacute;mero de registos (depende de la implementaci&amp;oacute;n) Y claro la MAS recomendada y eficiente de todas que es usar CLR, especial para este tipo de casos Los invito a probar las diferentes alternativas y enviar sus comentarios sobre el tema &lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDDY LEANDRO ANGARITA CASTELLANOS&lt;/b&gt; &lt;br /&gt;Sql Server MVP&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=186262" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2010/12/22/code-c-243-mo-generar-n-filas-r-225-pido-sql-server.aspx</link>
      <pubDate>Wed, 22 Dec 2010 14:35:00 GMT</pubDate>
    </item>
    <item>
      <title>[Code] Cómo calcular un total acumulado Rápido SIN Cursores</title>
      <description>&lt;p&gt;Una de las cosas que nos lleva a usar cursores es el c&amp;aacute;lculo de totales acumulados, as&amp;iacute; que usando una de las carater&amp;iacute;sticas no muy documentadas de SQL podemos realizar &amp;eacute;ste trabajo con poco esfuerzo y de una manera r&amp;aacute;pida y efectiva &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;--DBCC DROPCLEANBUFFERS -- Limpia cach&amp;eacute; de datos&lt;/b&gt; SOLO SE UTILIZA PARA COMPARAR CON OTRAS IMPLEMENTACIONES ELIMNAR EN AMBIENTE DE PRODUCCI&amp;Oacute;N&lt;/p&gt;
&lt;p&gt;&lt;b&gt;--DBCC FREEPROCCACHE -- Limipia el cach&amp;eacute; de procedimientos&lt;/b&gt; SOLO SE UTILIZA PARA COMPARAR CON OTRAS IMPLEMENTACIONES ELIMNAR EN AMBIENTE DE PRODUCCI&amp;Oacute;N&lt;/p&gt;
&lt;p&gt;&lt;b&gt;GO &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;declare @runningtotal decimal(17,2) &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;set @runningtotal = 0 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;update TablaValores &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;set @runningtotal = ValorAcumulado = @runningtotal + ValorFila &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Espero sea de ayuda &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FREDDY LEANDRO ANGARITA CASTELLANOS&lt;/b&gt; &lt;br /&gt;Sql Server MVP&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fangarita/MVPLogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=184079" width="1" height="1"&gt;</description>
      <link>http://geeks.ms/blogs/fangarita/archive/2010/10/28/code-c-243-mo-calcular-un-total-acumulado-r-225-pido-sin-cursores.aspx</link>
      <pubDate>Thu, 28 Oct 2010 20:36:00 GMT</pubDate>
    </item>
  </channel>
</rss>
