<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-32444172</id><updated>2012-01-21T21:21:02.419+01:00</updated><category term='Windows Communication Foundation'/><category term='LightSwitch'/><category term='Depuración'/><category term='WCF RIA Services'/><category term='Team Foundation Server'/><category term='Framework .NET'/><category term='Exchange'/><category term='Outlook'/><category term='CSF'/><category term='AppFabric'/><category term='WP7'/><category term='msi'/><category term='Connected Services Framework'/><category term='Visual Studio .NET'/><category term='Azure'/><category term='Windows Phone'/><category term='Setup'/><category term='Visual Studio 2008'/><category term='SQL Azure DataSync'/><category term='ALM'/><category term='WCF'/><category term='Enterprise Library'/><category term='Eventos'/><category term='SQL Azure'/><category term='Microsoft Lync'/><category term='Windows Azure'/><category term='Visual Studio 2011'/><title type='text'>Juanlu, elGuerre</title><subtitle type='html'>Tecnología Microsoft en general: .NET, C#, WCF, MVC, HTML5, Lightswitch... y, WINDOWS AZURE en particular.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32444172.post-4333454626039527604</id><published>2012-01-21T21:20:00.001+01:00</published><updated>2012-01-21T21:21:02.430+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Windows Azure - Fixing Reconnect Remote Desktop Error !!!</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-1PFfjbo_SHA/TxseDenmrUI/AAAAAAAAAvc/_dzFf55u5pM/s1600-h/Windows%252520Azure%252520Big%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px 20px 10px 5px; 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="Windows Azure Big" border="0" alt="Windows Azure Big" align="left" src="http://lh6.ggpht.com/-0RZ8CdB5yFs/TxseD1-zrBI/AAAAAAAAAvg/q9U4qn2WoAk/Windows%252520Azure%252520Big_thumb%25255B1%25255D.png?imgmax=800" width="240" height="48" /&gt;&lt;/a&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Mientras espero la notificación para la actualización en el teléfono de nuevo Firmware del Nokia Lumia 800, a pesar de conocer otros caminos de actualización, entre otros como el que nos cuenta &lt;a href="http://geeks.ms/blogs/jorge/"&gt;Jorge Serrano&lt;/a&gt; &lt;a href="http://geeks.ms/blogs/jorge/archive/2012/01/19/mis-apreciaciones-respecto-a-la-actualizaci-243-n-del-firmware-del-nokia-lumia-800.aspx"&gt;aquí&lt;/a&gt;, yo sigo pegándome con temas de &lt;a href="https://www.windowsazure.com/"&gt;Windows Azure&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;En esta ocasión simplemente quiero comentar un tema que me ha traído de cabeza esta tarde, “&lt;em&gt;una de esas tonterías que al final, son eso, tonterías que te hacen perder el tiempo por que sí&lt;/em&gt;”, pues bien, si os encontráis con el error “&lt;em&gt;The Specified User Name does not exist. Verify the Username and try logging in again&lt;/em&gt;” al intentar acceder a un Servidor Remoto de &lt;a href="https://www.windowsazure.com/"&gt;Windows Azure&lt;/a&gt;, simplemente chequea los pasos que nuestro compañero “Karthikeyan Anbarasan” nos cuenta &lt;a href="http://www.c-sharpcorner.com/uploadfile/ae35ca/windows-azure-fixing-reconnect-remote-desktop-error-the-specified-user-name-does-not-exist-verif/"&gt;aquí&lt;/a&gt; y que resumo muy brevemente:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Guarda el fichero “.rdp” en local &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-adVS7i9SCgY/TxseES8QtQI/AAAAAAAAAvo/ZcjCjbe4ScY/s1600-h/image%25255B10%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-oVcDTKxpV6A/TxseFDYtDrI/AAAAAAAAAvw/Vu0xx8YjXJo/image_thumb%25255B3%25255D.png?imgmax=800" width="470" height="30" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Edítalo y marca la casilla “Always ask for credential” &lt;/li&gt;    &lt;li&gt;Gardalo &lt;/li&gt;    &lt;li&gt;y Listo, ya puedes conectarte si volver a ver de nuevo el error. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-l2EJmSWqnnc/TxseF_4NtFI/AAAAAAAAAv8/px6iasm7YK4/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-96-yS4FAPXA/TxseGj3xV4I/AAAAAAAAAwE/A0WY7UKKWSI/image_thumb.png?imgmax=800" width="214" height="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Espero que os ahorre algún tiempo, al menos, en aquellas ocasiones en las que tengáis un día complicado y os cueste centraos.&lt;/p&gt;  &lt;p&gt;Saludos @Hard Weekend    &lt;br /&gt;Juanlu     &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4333454626039527604?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4333454626039527604/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4333454626039527604&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4333454626039527604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4333454626039527604'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2012/01/windows-azure-fixing-reconnect-remote.html' title='Windows Azure - Fixing Reconnect Remote Desktop Error !!!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-0RZ8CdB5yFs/TxseD1-zrBI/AAAAAAAAAvg/q9U4qn2WoAk/s72-c/Windows%252520Azure%252520Big_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-4748684814192788312</id><published>2012-01-12T23:24:00.001+01:00</published><updated>2012-01-12T23:24:29.756+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>El update de WP7 “8107” ya casi está. ¿Solucionará el Nokia Lumia 800 “battery issue”?</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;La noticia se merece el post, aunque sea cortito, :-D&lt;/p&gt;  &lt;p&gt;Hace una semana escribía &lt;a href="http://eljuanlu.blogspot.com/2012/01/analizando-battery-issue-power-on.html"&gt;este post&lt;/a&gt;, sobre el issue / problema de la batería del Nokia Lumia 800, y la espera al nuevo update que solucionaría el problema, pues bien, en esta ocasión y tras mi impaciencia, desde Movistar me responden a una de mis preguntas como sigue:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Informaros que nos han comentado lo siguiente, si un usuario ya tiene el terminal y actualiza a la nueva versión con Zune, el nombre de la versión será 1600.2483.8106.11500, y todos los equipos que se produzcan nuevos, llevarán la misma versión pero su nombre/identificador es el 1600.2483.8107.11501. Estas dos numeraciones son la misma versión.&lt;/em&gt; &lt;/p&gt;    &lt;p&gt;&lt;em&gt;Y estará disponible en una semana aproximadamente.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Este nuevo update contendrá:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;It solves a problem of the keyboard on the screen, preventing the keyboard to disappear while typing&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Resolves an issue with syncing Gmail &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;It solves a problem of access to the location. After the upgrade, the function IO hub sends to Microsoft anonymous information contact the Wi-Fi access points and antennas for mobile phones in the vicinity, only if you have allowed access to and use of location information from part of the “I’m here.”&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Revocation of certificates issued by DigiCert Sdn Bhd to solve a problem of encryption &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fixes a problem with the e-mail related to Microsoft Exchange Server 2003. When you reply to or forward an email, the original message is now included in the response.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Fixes an issue of notification of voicemail &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Adicionalmente, Microsoft aprovechará para incluir algunos cambios que puedes ver &lt;a href="http://wmpoweruser.com/wp7-8107-update-brings-automatic-carrier-time-and-3gedge-switch-also/"&gt;aqui&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Datos Moviles&lt;/strong&gt;: Donde ahora permitirá seleccionar entre la velocidad más alta 3G y la normal (EDGE/GPRS) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fecha y hora&lt;/strong&gt;: Configuración automática de la fecha a partir de la red de telefono. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Si alguien no recibe el update desde su proveedor de red o no quiere esperar, puede hacerlo manualmente (con el riesgo que conlleva) según indican los primeros “cocineros”&amp;#160; de XDA-Developers &lt;a href="http://forum.xda-developers.com/showthread.php?t=1306415"&gt;aquí&lt;/a&gt; y &lt;a href="http://forum.xda-developers.com/showpost.php?p=21028452&amp;amp;postcount=281"&gt;aquí&lt;/a&gt;.&amp;#160; ¡Seguro que en breve nuestro Windows Phone parecerá cualquier otra cosa, jejeej…!&lt;/p&gt;  &lt;p&gt;Saludos @Home    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4748684814192788312?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4748684814192788312/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4748684814192788312&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4748684814192788312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4748684814192788312'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2012/01/el-update-de-wp7-8107-ya-casi-esta.html' title='El update de WP7 “8107” ya casi está. ¿Solucionará el Nokia Lumia 800 “battery issue”?'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-1136790402909393818</id><published>2012-01-04T10:03:00.001+01:00</published><updated>2012-01-04T10:03:59.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>Analizando “Battery Issue” &amp; “Power on Charge” en Nokia Lumia 800. Un poco de cabezonería….</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-Yiq_rOrjs_0/TwQV3diMb7I/AAAAAAAAAuY/iHznyfDEhQw/s1600-h/WP7_Logo5.jpg"&gt;&lt;img style="margin: 0px 15px 0px 0px; display: inline; float: left" title="WP7_Logo" alt="WP7_Logo" align="left" src="http://lh5.ggpht.com/-pAnpjNZz0jA/TwQV4VIz5HI/AAAAAAAAAug/tkkgExvFfaU/WP7_Logo_thumb3.jpg?imgmax=800" width="67" height="68" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas y Feliz 2012 a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;, &lt;/p&gt;  &lt;p&gt;Después de varios días, indagando en el tema de la batería del Lumia 800, “Googleando” y mirando y participando en los foros de Nokia, además de mi cabezonería por identificar la causa del “Battery Issue” / “Battery Fix” / “Battery Problem”…, saco algunas conclusiones que me gustaría compartir a fin de poder disfrutar durante más tiempo del nuevo Lumia 800, al menos, hasta el 18 de enero que es a partir de cuando tendremos realmente ante nuestras manos el “mejor”.&lt;/p&gt;  &lt;p&gt;Diferentes issues o problemas en cada Lumia:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Batería con 1519mA y con una carga máxima de 900mA.&amp;#160; En este caso, obtén el IMEI “*#06#” y ponte en contacto con con Nokia facilitándole esta información para que te cambien el terminal. Aquí, a pesar de todo se ve la calidad de servicio:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Contact Info:&lt;/li&gt;      &lt;li&gt;Alternate #: (if any)&lt;/li&gt;      &lt;li&gt;Best call back time: &lt;/li&gt;      &lt;li&gt;Email Address: &lt;/li&gt;      &lt;li&gt;Home Address: &lt;/li&gt;      &lt;li&gt;IMEI: &lt;/li&gt;      &lt;li&gt;Network Operator:&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Batería con 1519mA y con una carga máxima de 1250mA (Este es mi caso). &lt;/li&gt;    &lt;li&gt;Imposibilidad de finalizar las llamadas. &lt;/li&gt;    &lt;li&gt;Largas esperas y comportamientos extraños en la carga de la batería una vez que esta se ha descargado completamente. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Aunque hay algún otro, estos son los problemas que he podido comprobar a mi alrededor y que no dejan de seguir apareciendo. Todos ellos para las recientes versiones de Firmware: “1600.2475.7720.11414” y “1600.2479.7740.11451” (&lt;a href="http://www.nokia.co.uk/gb-en/support/product/lumia800/"&gt;Ultima actualización&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;Analizando estos problemas y la obsesión por que la batería aguante cuanto más mejor, he seguido los siguientes pasos:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Seguir algunas indicaciones para &lt;a href="http://www.nokia.co.uk/gb-en/support/product/lumia800/faq/?action=singleFAQ&amp;amp;caseid=FA136400_en_US%20and"&gt;optimizar el uso de la batería&lt;/a&gt;.       &lt;ul&gt;       &lt;li&gt;Desabilitar la 3G.&amp;#160; En sitios donde haya poca cobertura, el teléfono no parará de rastrearla hasta intentar conseguirla lo que implicar una gran gasto de la misma. &lt;/li&gt;        &lt;li&gt;Desabilitar “Settings – Find my Phone”. Supuestamente es un servicio y como tal consume. &lt;/li&gt;        &lt;li&gt;Desabilitar “Settings – games – Connect with Xbox LIVE” &lt;/li&gt;        &lt;li&gt;Desabilitar la tareas de segunto plano &lt;/li&gt;        &lt;li&gt;Desabilitar la sincronización automática de los emails &lt;/li&gt;        &lt;li&gt;Habilitar el ahorro de batería &lt;/li&gt;        &lt;li&gt;etc. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Analizar la herramienta “Diagnostics” (##634#), donde se pueden sacar algunas conclusiones &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-qUXQUT24AwY/TwQV52iNgVI/AAAAAAAAAuo/hVk_K2yYyTo/s1600-h/Battery_Diagnostics_App2.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="Battery_Diagnostics_App" border="0" alt="Battery_Diagnostics_App" src="http://lh5.ggpht.com/-L4eeARIm4QU/TwQV61CpWxI/AAAAAAAAAuw/ZuHv5eMGLUE/Battery_Diagnostics_App_thumb.jpg?imgmax=800" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;“Current (Discharging)”, indica la velocidad a la que se descarga la batería.&amp;#160;&amp;#160; Este valor tiende a ser más o menos constante rondando los 147mA y 190mA aproximadamente, dependiendo de las funcionalidades activadas/desactivadas comentadas anteriormente y a excepción de estos altibajos como el caso de la 3G, si se activa e inmediatamente se analiza este dato, puede observarse como se incrementa la velocidad al doble aproximadamente durante el tiempo de establecimiento de la señal, de ahí, que los lugares donde la señal sea débil esto puedo afectar realmente.&lt;/li&gt;      &lt;li&gt;“Remaining Charge Capacity”, este valor debería ser igual al valor del “Full Charge Capacity” y que hasta ahora no&amp;#160; es posible alcanzar debido a uno de los Issue, es decir, se está desaprovechando casi un 20% de batería que no se usa. &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;Sinceramente y a pesar de todos estos ajustes, el mayor agente de descarga de la batería es el “VICIO” de no dejarlo descansar, yo, particularmente ¡ no paro!&lt;/p&gt;  &lt;p&gt;Por otro lado, y como ya tenía el teléfono desbloqueado con el &lt;a href="https://labs.chevronwp7.com/Default.aspx?ReturnUrl=%2fAccount%2fUnlock.aspx"&gt;Chevronwp7&lt;/a&gt;, he instalado otra aplicación de gestión de la batería: “&lt;a href="http://forum.xda-developers.com/showthread.php?t=1328730"&gt;Battery Status&lt;/a&gt;”, que puedes instalar con la aplicación “Application Development” incluida en el &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27570"&gt;SDK 7.1 de Windows Phone&lt;/a&gt;. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-5ky6kfJr5NI/TwQV8F2IyQI/AAAAAAAAAu4/j7VsnS561EM/s1600-h/WP7_Application-Development-Deploy2.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="WP7_Application Development Deploy" border="0" alt="WP7_Application Development Deploy" src="http://lh5.ggpht.com/-Lj-b8KNGt2Q/TwQV9OGECII/AAAAAAAAAvA/XtvMmbMOGCk/WP7_Application-Development-Deploy_t.png?imgmax=800" width="244" height="220" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cosa curiosa, además de ser una aplicación muy completa y bastante mejor que la anterior (teniendo en cuenta que se trata de una herramienta de testing), esta si que parece indicar que el cargo de la batería se hace por completo. Aquí un ejemplo al 95%.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-A6v-8DfhKt4/TwQV-Dd3P3I/AAAAAAAAAvI/CqjQ1zHALvc/s1600-h/Screen-Capture5.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="Screen Capture" border="0" alt="Screen Capture" src="http://lh6.ggpht.com/-Rul4Tn22U7o/TwQV_W-MVTI/AAAAAAAAAvQ/T3SEfKNMpG8/Screen-Capture_thumb1.jpg?imgmax=800" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;¡Ahora si que vienen las dudas!&amp;#160; ¿Realmente es un problema de batería o simplemente se trata de un bug en la herramienta nativa de chequeo/testing?&amp;#160; ¿En que parámetros (distintos) se basa esta otra aplicación para hacer los cálculos? Las respuestas a estas preguntas dan un poco igual si no pueden compararse, así que veremos que pasa llegado el 18 de Enero y si los datos varia para mejor. ¿Cumplirá Nokia lo que se comenta por distintos foros?, ¿Superará&amp;#160; finalmente a sus competidores ?&amp;#160; Bajo mi punto de vista, si supera esta prueba, ¡&lt;em&gt;los Lumia 800 comenzarán a salir hasta debajo de las piedras&lt;/em&gt;!&lt;/p&gt;  &lt;p&gt;Otro dato y muy curioso, es que algunos dicen que con el tiempo la batería va mejorando, personalmente y con datos estadísticos, puedo aportar poco, pero creo que esto radica en que después de un tiempo, sin darnos cuenta el uso que hacemos del teléfono no es tan continuado y ese “VICIO” inicial desaparece. ¡&lt;em&gt;El Lumia 800 está para sacarle el máximo partido, no os canséis, a programarlo y a experimentar con el, jeje…!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Continuaré analizando más datos gracias a esta nueva herramienta, que además de generar gráficos con históricos del uso de la batería,&amp;#160; muestra un listado con los procesos que se encuentran en ejecución, pero eso será en un siguiente post.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Nota&lt;/u&gt;&lt;/strong&gt;: En estos instantes chevronwp7 ya no vende más tokens, parece que se han agotado (&lt;a title="http://www.technologytell.com/gadgets/87693/chevronwp7-tokens-have-been-sold-out/" href="http://www.technologytell.com/gadgets/87693/chevronwp7-tokens-have-been-sold-out/"&gt;http://www.technologytell.com/gadgets/87693/chevronwp7-tokens-have-been-sold-out/&lt;/a&gt;) así que aquellos que no tengáis desbloqueado el teléfono, tendréis que esperar para poder instalar “&lt;a href="http://forum.xda-developers.com/showthread.php?t=1328730"&gt;Battery Status&lt;/a&gt;”.&lt;/p&gt;  &lt;p&gt;Saludos    &lt;br /&gt;Juanlu, ElGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-1136790402909393818?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/1136790402909393818/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=1136790402909393818&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1136790402909393818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1136790402909393818'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2012/01/analizando-battery-issue-power-on.html' title='Analizando “Battery Issue” &amp;amp; “Power on Charge” en Nokia Lumia 800. Un poco de cabezonería….'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-pAnpjNZz0jA/TwQV4VIz5HI/AAAAAAAAAug/tkkgExvFfaU/s72-c/WP7_Logo_thumb3.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-8255103348813680529</id><published>2011-12-27T02:29:00.001+01:00</published><updated>2011-12-27T02:29:24.904+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone'/><category scheme='http://www.blogger.com/atom/ns#' term='WP7'/><title type='text'>Lumia 800 y sus primeros inconvenientes, ¡la duración de la batería!</title><content type='html'>&lt;p&gt;&lt;img style="margin: 5px" alt="" src="https://encrypted-tbn2.google.com/images?q=tbn:ANd9GcTRfrPg34ZQZXJISVfst-_eP-TAyCNaitVuZmGvYTuPvZ5OvaSSmg" width="86" height="86" /&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Hace uno días, ya obtuve mi regalo de estas Navidades, ¡He sido bueno!, jeje.. Finalmente, el “Lumina 800” está en mi poder.&lt;/p&gt;  &lt;p&gt;Una vez que he jugueteado un poco y visto sus enormes capacidades así como el juguetito que realmente es, he comenzado a indagar un poco y a ver algunos de sus alcances, algunos de los cuales comento a continuación:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;La primera de las necesidades al disponer del Windows Phone 7 (WP7) es disponer de &lt;a href="http://www.zune.net/es-ES/"&gt;Zune&lt;/a&gt;, aplicación con la que podremos conectar el Movil al ordenador para comenzar a transferir información. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Es aquí nada más comenzar donde surge mi primer problema: “&lt;em&gt;can't connet to your phone. Disconnect it, restart it, then try connecting again.”&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;Este error es debido al certificado personal que se instala automáticamente al conextar el WP7 a Zune. Relacionado posiblemente con la aplicacíón del DNIe o similar. Desinstálala y todo arreglado. A posteriori podrás volverla a instalar.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Seguidamente y tras haber instalado las aplicaciones básicas y más importantes, mi siguiente preocupación, como con cada uno de los móviles que he tenido hasta el momento, es la batería. Y si, aunque parezca mentira y muy a mi pesar, existen problemas con la batería del Nokia Lumia 800: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Lo primero es detectar el problema. Para ello, y, una vez seguidas las recomendaciones de ahorro de batería &lt;strike&gt;del manual de usuario&lt;/strike&gt;, teclea el siguiente código “&lt;strong&gt;&lt;u&gt;##634#&lt;/u&gt;&lt;/strong&gt;”, esto lanzará una aplicación en tu móvil (y que a partir de este momento tendrás instalada (“&lt;em&gt;Diagnostics&lt;/em&gt;”)), cuyo propósito es realizar un chequeo en profundidad del mismo.&amp;#160; Entre estos chequeos se encuentra el que busco “Battery Status”. Si tu batería tiene un problema, podrás comprobar que aunque lo parezca, nunca se carga al 100%. En mi caso, el Nokia Lumia 800, dispone de 1500MA de los cuales sólo se cargan unos&amp;#160; 1200 ó 1300MA. Adicionalmente,&amp;#160; su porcentaje de carga, siempre es de “&lt;em&gt;65535%&lt;/em&gt;”. No sé si no lo entiendo o no quiero entenderlo, pero ¡como realmente sea así, ¡&lt;strike&gt;me parece una cagadita&lt;/strike&gt;! no me parece muy acertado.&lt;/p&gt;    &lt;p&gt;Afortunadamente, y a pesar de todo, el problema radica en el software, en el Windows Phone, que no es capaz de gestionarla adecuadamente.&amp;#160; Con un poco de paciencia, el próximo 18 de Enero tendremos la actualización pertinente con este problema corregido. Si aún así, no quieres esperar a tal día, Nokia te remplazará el móvil sin problemas, (No he hecho la prueba ni lo he intentado, jeje…). &lt;a href="http://elcomercio.pe/tecnologia/1350699/noticia-nokia-admite-problemas-bateria-lumia-800-quejas-usuarios#Comentar"&gt;Aquí tenéis más detalle sobre el bug de la batería&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-IzW6RBK7Ses/TvkfZTQ4aoI/AAAAAAAAAuI/3GibXi2UHBI/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-mZ5-M3VZXaU/TvkfcjMGIkI/AAAAAAAAAuQ/es_Fo46j4pk/image_thumb.png?imgmax=800" width="148" height="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Por otro lado y, viendo la otra cara de la moneda, a diferencia de Apple, Microsoft ha decidido dar la opción de desbloquear el teléfono de manera legal y controlada por sólo unos 7€, simplemente obtén el código adecuado siguiendo las instrucción indicadas en: &lt;a href="http://labs.chevronwp7.com/"&gt;http://labs.chevronwp7.com/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;El 18 de Enero es el día, en que realmente se hará efectivo mi regalo !!!&lt;/p&gt;  &lt;p&gt;Saludos y FELIZ NAVIDAD Y PROPERO AÑO NUEVO 2012 a todos    &lt;br /&gt;Juanlu     &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-8255103348813680529?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/8255103348813680529/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=8255103348813680529&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8255103348813680529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8255103348813680529'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/12/lumia-800-y-sus-primeros-inconvenientes.html' title='Lumia 800 y sus primeros inconvenientes, ¡la duración de la batería!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-mZ5-M3VZXaU/TvkfcjMGIkI/AAAAAAAAAuQ/es_Fo46j4pk/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-2956200334976904128</id><published>2011-10-20T12:02:00.001+02:00</published><updated>2011-10-20T12:02:33.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure DataSync'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Library'/><title type='text'>Are Out !!! SQL Azure DataSync CTP y Windows Azure Autoscaling Block Beta</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Hace unos días escribía un &lt;a href="http://eljuanlu.blogspot.com/2011/10/sql-azure-datasync-preview.html"&gt;post&lt;/a&gt; sobre la Preview de SQL Azure DataSync, pues bien, ya tenemos la &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/10/14/announcing-sql-azure-data-sync-preview-release.aspx"&gt;CTP&lt;/a&gt; y, como parece ser que no ha cambiado desde entonces, me ahorro el hacer el tour con la herramienta, jeje..&lt;/p&gt;  &lt;p&gt;Como no hay una buena noticia sin dos, también tenemos a nuestra disposición una beta de Patterns &amp;amp; Practices, “&lt;strong&gt;Windows Azure Autoscaling Block&lt;/strong&gt;” que puedes descargar directamente desde &lt;a href="http://nuget.org/List/Search?packageType=Packages&amp;amp;searchCategory=All+Categories&amp;amp;searchTerm=wasabi&amp;amp;sortOrder=package-download-count&amp;amp;pageSize=10"&gt;desde NuGet&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;Si estás interesado como yo en el &lt;strong&gt;auto-escalado&lt;/strong&gt;, entonces empieza por aquí con sus novedades: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;El &lt;strong&gt;estabilizador&lt;/strong&gt; aumenta la &lt;a href="http://es.wikipedia.org/wiki/Hist%C3%A9resis"&gt;histéresis&lt;/a&gt; (“&lt;em&gt;&lt;font size="1"&gt;tendencia de un material &lt;/font&gt;&lt;/em&gt;&lt;em&gt;&lt;font size="1"&gt;a conservar una de sus propiedades, &lt;/font&gt;&lt;/em&gt;&lt;em&gt;&lt;font size="1"&gt;en ausencia del estímulo que la ha generado.&lt;/font&gt;&lt;/em&gt;”) en el escalo de operaciones mediante la prevención de reglas reactivas de acciones repetidas y erróneas. &lt;/li&gt;    &lt;li&gt;El &lt;strong&gt;Throttiling (regulador)&lt;/strong&gt;, permite limitar o desactivar ciertas operaciones relativamente caras en la aplicación cuando la carga está por encima de determinados umbrales. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Notificaciones de emails&lt;/strong&gt;, permite enviar notificaciones a destinatarios configurados para tomar decisiones manuales o realizar alguna otra acción correctiva. &lt;/li&gt;    &lt;li&gt;Conjunto valores de contadores para cada role definido en el almacén de información de servicios&amp;#160; (utilizado principalmente por el estabilizador, pero los usuarios también podrán usarlo en operandos de condiciones de la reglas). &lt;/li&gt;    &lt;li&gt;Capacidad para definir acciones personalizadas para reglas reactivas. &lt;/li&gt;    &lt;li&gt;Capacidad de especificar operandos personalizados para su uso en condiciones de reglas reactivas. &lt;/li&gt;    &lt;li&gt;Nueva funciones &amp;quot;&lt;strong&gt;Max&lt;/strong&gt;&amp;quot; y &amp;quot;&lt;strong&gt;Growth&lt;/strong&gt;&amp;quot; en la definición de operaciones. &lt;/li&gt;    &lt;li&gt;Mejora en los mensajes para la evaluación de reglas y escalado para determinar mejor lo que está sucediendo en el sistema. &lt;/li&gt;    &lt;li&gt;Nuevo ID de evaluación para correlacionar todos los mensajes de registro de un pase de evaluación específica. &lt;/li&gt;    &lt;li&gt;Cargas JSON para registrar los mensajes para ayudar a las herramientas que monitoricen e interpreten los mensajes. &lt;/li&gt;    &lt;li&gt;Clases de utilidad y definiciones de constantes para leer y analizar los mensajes de registro. &lt;/li&gt;    &lt;li&gt;Mejoras en la herramienta de configuración, mejores nombres y descripciones de objetos de configuración, validación, y un editor de cadenas de conexión de Windows Azure. &lt;/li&gt;    &lt;li&gt;Actualización de la lógica en el &lt;strong&gt;RulesEvaluator&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;Renombrado de la propiedad &amp;quot;nombre&amp;quot; por &amp;quot;alias&amp;quot; a fin de eliminar ciertas ambigüedades. &lt;/li&gt;    &lt;li&gt;Renombrado &amp;quot;SourceLogger&amp;quot; por &amp;quot;&lt;strong&gt;SystemDiagnosticsLogger&lt;/strong&gt;&amp;quot;. &lt;/li&gt;    &lt;li&gt;Refactorizado del elemento XML “scale” en el esquema de reglas para hacerlas más amigables (mediante la la eliminación de las propiedades &amp;quot;targetType&amp;quot; y &amp;quot;unit&amp;quot;) e inferirlas a partir de su uso. &lt;/li&gt;    &lt;li&gt;Proporcionan una mejor definición de puntos cuando hay datos suficientes para que el block/componente pueda evaluar una regla. &lt;/li&gt;    &lt;li&gt;Nuevo elemento booleano &lt;strong&gt;NOT &lt;/strong&gt;para especificar condiciones de la regla. &lt;/li&gt;    &lt;li&gt;Soporte para expresiones aritméticas básicas (multiplicación y división) en los parámetros en la especificación de condiciones de la regla. &lt;/li&gt;    &lt;li&gt;&amp;quot;&lt;strong&gt;Rank&lt;/strong&gt;&amp;quot; (prioridad) a las reglas reactivas. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Para más detalle, no te olvides de &lt;a href="http://entlib.codeplex.com/wikipage?title=WASABiBetaReleaseNotes&amp;amp;referringTitle=EntLib5Azure"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hasta aquí por el momentosobre el auto-escalado !&lt;/p&gt;  &lt;p&gt;Saludos @Working hard...    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-2956200334976904128?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/2956200334976904128/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=2956200334976904128&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2956200334976904128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2956200334976904128'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/10/are-out-sql-azure-datasync-ctp-y.html' title='Are Out !!! SQL Azure DataSync CTP y Windows Azure Autoscaling Block Beta'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-6237858016368995309</id><published>2011-10-18T21:38:00.001+02:00</published><updated>2011-10-18T21:38:12.539+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Server'/><category scheme='http://www.blogger.com/atom/ns#' term='ALM'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2011'/><title type='text'>TFS Integration Tool: Integrando/migrando de CMMI 4.2 a CMMI 5 y mapeos para Task y Requirements</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;No tenía pensado comentar nada al respecto, pero después de aprender a usar la herramienta, detectar algunos bugs y un poco de trabajo de “chinos”, creo que es una pequeña ayuda para que podáis entender la migración entre distintos “Team Projects” con distintas plantillas de procesos:&lt;/p&gt;  &lt;p&gt;Antes de nada, para el que no conozca “&lt;a href="http://tfsintegration.codeplex.com/"&gt;TFS Integration Tool (o, TFS Integration Platform)&lt;/a&gt;” es un herramienta de CodePlex, que facilita la migración/integración entre diferentes versiones de Work Items, Bug Tracking, etc.&lt;/p&gt;  &lt;p&gt;Aunque está en beta, siempre que no se haya “customizado” complicadamente algún work item, cosa que no es de extrañar en algún caso, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-AmfJ10XwKPc/Tp3UzE8KicI/AAAAAAAAAoc/wDFSRINP1wQ/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" /&gt;), la herramienta funciona bastante bien, salvo algunas limitaciones en cuanto a items que no son migrados a día de hoy:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Check-in notes &lt;/li&gt;    &lt;li&gt;&lt;strike&gt;Labels&lt;/strike&gt; &lt;/li&gt;    &lt;li&gt;Permissions &lt;/li&gt;    &lt;li&gt;Workspaces &lt;/li&gt;    &lt;li&gt;Pending Changes &lt;/li&gt;    &lt;li&gt;Shelvesets &lt;/li&gt;    &lt;li&gt;File encodings &lt;/li&gt;    &lt;li&gt;Subscriptions &lt;/li&gt;    &lt;li&gt;Test Cases &lt;/li&gt;    &lt;li&gt;Check-in policies &lt;/li&gt;    &lt;li&gt;Reports &lt;/li&gt;    &lt;li&gt;Team Portal / SharePoint &lt;/li&gt;    &lt;li&gt;Process Templates &lt;/li&gt;    &lt;li&gt;Work item queries &lt;/li&gt;    &lt;li&gt;Builds &lt;/li&gt;    &lt;li&gt;Warehouse data &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hasta donde he podido llegar, los “Labels” si los migra, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-AmfJ10XwKPc/Tp3UzE8KicI/AAAAAAAAAoc/wDFSRINP1wQ/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;Aunque podemos encontrarnos casos más complejos, entre otros, que el TeamProject destino exista y ya tenga bastante código, Work Items, changesets, etc, por el momento, os dejo un resumen de mi caso en concreto (desde “MSF for CMMI Process Improvement v4.2” a “&lt;a href="http://msdn.microsoft.com/en-us/library/dd997574.aspx"&gt;MSF for CMMI Process Improvement CMMI5&lt;/a&gt;”) donde el TeamProject destino está recién creado:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Crea el “TeamProject” destino basado en la Platilla “&lt;a href="http://msdn.microsoft.com/en-us/library/dd997574.aspx"&gt;MSF for CMMI Process Improvement v5.0&lt;/a&gt;” &lt;/li&gt;    &lt;li&gt;Abre la consola de administración de TFS y asignar el usuario con el que se vaya a lanzar la migración desde el “TFS Integration” dentro del grupo “Team Foundation Services Account”. Como en la mayoría de los casos seremos nosotros mismos, los que lancemos la migración, pues bastará con seguir los pasos (1) y (2) según indico en la siguiente figura, y si ya apareces como “Administrator Console Users”, haz click en “&lt;strong&gt;Reaply&lt;/strong&gt;” para que se puedan aplicar los permisos oportunos y, todo listo.&amp;#160;&amp;#160;&amp;#160;&amp;#160; Si quieres conocer más información al respecto de este punto, echa un vistazo a este &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/05/17/tfs-integration-tools-where-does-one-start-part-3-dust-has-settled-did-it-work.aspx"&gt;post&lt;/a&gt; de “Willy’s Cave”. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-s45UY36eCog/Tp3U01EEbaI/AAAAAAAAAok/PnLH-xSLC8E/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-hj21e5IuADM/Tp3U1tFphZI/AAAAAAAAAos/XF6gvHWhhhA/image_thumb%25255B7%25255D.png?imgmax=800" width="484" height="282" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Abre el “TFS Integration”, crea una nueva configuración(“Create new”) y elige “&lt;u&gt;&lt;em&gt;&lt;strong&gt;VersionControlAndWorkItemTracking.xml&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;” &lt;/li&gt;    &lt;li&gt;Selecciona el “Workflow Type” “&lt;strong&gt;Custom&lt;/strong&gt;” &lt;em&gt;(el resto, en la versión “2.1.10324.0” no parece que vayan del todo bien, no se guardan las reglas, tienes que aplicar de&amp;#160; nuevo la migración y finalmente la esta nunca se produce !!!)&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-lnEKDf2El0I/Tp3U2XZUX5I/AAAAAAAAAo0/EGymRIaLjGo/s1600-h/image%25255B12%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-oIN3SFk8XVQ/Tp3U3toV4wI/AAAAAAAAAo8/8ERcot-b7bY/image_thumb%25255B6%25255D.png?imgmax=800" width="481" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Utiliza los siguientes valores para realizar tu configuración de Mapeo/Migración: &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-kvwYyzbZtdk/Tp3U5qezRbI/AAAAAAAAApE/euigiljqSV8/s1600-h/image%25255B18%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-Xv9s4Hvs7YU/Tp3U68APtTI/AAAAAAAAApM/tFFqUSEe3ag/image_thumb%25255B10%25255D.png?imgmax=800" width="538" height="501" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;En el paso (2) aparecerá una nueva ventana donde tendrás que indicar los mapeos entre los distintos Work Items y sus campos. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-4tvhZNXO0oA/Tp3U7nFB0gI/AAAAAAAAApU/j9rUgoYl7oQ/s1600-h/image%25255B23%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-V8ldcsh906U/Tp3U8dvifvI/AAAAAAAAApc/excpMd27R1I/image_thumb%25255B13%25255D.png?imgmax=800" width="509" height="274" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Este mapeo está listo para los Work Items de tipo “Requirement” y “Task”, el resto podrás crearlos tu mismo sin mayor esfuerzo una vez que entiendas estos, eso si, tendrás que conocer las diferencias de campos y poder hacer así el mapeo. &lt;/li&gt; &lt;/ul&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; height: 352px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SettingXml&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WITSessionCustomSetting&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Settings&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemTypes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Task&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Task&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;fieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Migrate2Tasks&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Requirement&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Requirement&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;fieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Migrate2Requirements&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Bug&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Bug&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;fieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Issue&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Issue&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;fieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Change Request&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightWorkItemTypeName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Issue&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;fieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;WorkItemTypes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMaps&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Migrate2Tasks&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum14"&gt;  14:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedFields&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum15"&gt;  15:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum16"&gt;  16:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- Mapeo de todos los campos --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum17"&gt;  17:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum18"&gt;  18:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum19"&gt;  19:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!--- Excepciones a los mapeos  --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum20"&gt;  20:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- Mapeos sin destino --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum21"&gt;  21:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Severity&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum22"&gt;  22:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Issue&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum23"&gt;  23:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Start Change Date&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum24"&gt;  24:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Exit Criteria&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum25"&gt;  25:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Test Id&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum26"&gt;  26:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Test Name&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum27"&gt;  27:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Test Path&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum28"&gt;  28:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Estimate&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Scheduling.OriginalEstimate&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum29"&gt;  29:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- Mapeos con cambio en el destino --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum30"&gt;  30:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Triage&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.Triage&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;TriageMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum31"&gt;  31:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Priority&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.Priority&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;PriorityMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum32"&gt;  32:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Discipline&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.Discipline&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;DisciplineMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum33"&gt;  33:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Task Type&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.TaskType&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;TaskTypeMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;          &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum34"&gt;  34:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum35"&gt;  35:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedFields&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum36"&gt;  36:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum37"&gt;  37:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum38"&gt;  38:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Migrate2Requirements&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum39"&gt;  39:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedFields&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum40"&gt;  40:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum41"&gt;  41:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;*&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum42"&gt;  42:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum43"&gt;  43:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Issue&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum44"&gt;  44:&lt;/span&gt;           &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum45"&gt;  45:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Rank&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.StackRank&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum46"&gt;  46:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Estimate&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Scheduling.OriginalEstimate&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum47"&gt;  47:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum48"&gt;  48:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Requirement Type&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.CMMI.RequirementType&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;RequirementType2Map&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum49"&gt;  49:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Priority&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.Priority&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;PriorityMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;          &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum50"&gt;  50:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedField&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Triage&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.VSTS.Common.Triage&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MapFromSide&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Left&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;valueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;TriageMap&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum51"&gt;  51:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum52"&gt;  52:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- These are not exist on target  --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum53"&gt;  53:&lt;/span&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!--&amp;lt;MappedField LeftName=&amp;quot;Start Date&amp;quot; RightName=&amp;quot;Microsoft.VSTS.Scheduling.StartDate&amp;quot; MapFromSide=&amp;quot;Left&amp;quot; valueMap=&amp;quot;&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum54"&gt;  54:&lt;/span&gt; &lt;span style="color: #008000"&gt;          &amp;lt;MappedField LeftName=&amp;quot;Finish Date&amp;quot; RightName=&amp;quot;Microsoft.VSTS.Scheduling.FinishDate&amp;quot; MapFromSide=&amp;quot;Left&amp;quot; valueMap=&amp;quot;&amp;quot; /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum55"&gt;  55:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum56"&gt;  56:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;MappedFields&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum57"&gt;  57:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;      &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum58"&gt;  58:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;FieldMaps&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum59"&gt;  59:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum60"&gt;  60:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMaps&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum61"&gt;  61:&lt;/span&gt;       &lt;span style="color: #008000"&gt;&amp;lt;!-- Tasks values  --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum62"&gt;  62:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;TriageMap&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum63"&gt;  63:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Pending&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Pending&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum64"&gt;  64:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;More Info&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;More Info&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum65"&gt;  65:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Info Recv&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Info Received&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum66"&gt;  66:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Triaged&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Triaged&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum67"&gt;  67:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum68"&gt;  68:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum69"&gt;  69:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;PriorityMap&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum70"&gt;  70:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum71"&gt;  71:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;2&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum72"&gt;  72:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;3&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum73"&gt;  73:&lt;/span&gt;         &lt;span style="color: #008000"&gt;&amp;lt;!--&amp;lt;Value LeftValue=&amp;quot;&amp;quot; RightValue=&amp;quot;4&amp;quot; /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum74"&gt;  74:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum75"&gt;  75:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum76"&gt;  76:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;DisciplineMap&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum77"&gt;  77:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Analysis&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Analysis&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum78"&gt;  78:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;User Experience&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;User Experience&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum79"&gt;  79:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;User Education&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;User Education&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum80"&gt;  80:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Test&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Test&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum81"&gt;  81:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum82"&gt;  82:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum83"&gt;  83:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;TaskTypeMap&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum84"&gt;  84:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Analysis&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Corrective Action&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum85"&gt;  85:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;User Experience&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Mitigation Action&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum86"&gt;  86:&lt;/span&gt;         &lt;span style="color: #008000"&gt;&amp;lt;!--&amp;lt;Value LeftValue=&amp;quot;&amp;quot; RightValue=&amp;quot;Planned&amp;quot; /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum87"&gt;  87:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum88"&gt;  88:&lt;/span&gt;  &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum89"&gt;  89:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;RequirementType2Map&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum90"&gt;  90:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Scenario&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Scenario&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum91"&gt;  91:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Quality of Service&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Quality of Service&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum92"&gt;  92:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Functional&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Functional&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum93"&gt;  93:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Operational&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Operational&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum94"&gt;  94:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Interface&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Interface&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum95"&gt;  95:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Security&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Security&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum96"&gt;  96:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Value&lt;/span&gt; &lt;span style="color: #ff0000"&gt;LeftValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Safety&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;RightValue&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Safety&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum97"&gt;  97:&lt;/span&gt;         &lt;span style="color: #008000"&gt;&amp;lt;!--&amp;lt;Value LeftValue=&amp;quot;&amp;quot; RigthValue=&amp;quot;Business Objective&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum98"&gt;  98:&lt;/span&gt; &lt;span style="color: #008000"&gt;        &amp;lt;Value LeftValue=&amp;quot;&amp;quot; RigthValue=&amp;quot;Feature&amp;quot;/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum99"&gt;  99:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMap&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum100"&gt; 100:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ValueMaps&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum101"&gt; 101:&lt;/span&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;WITSessionCustomSetting&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum102"&gt; 102:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;SettingXml&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum103"&gt; 103:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SettingXmlSchema&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Algunas notas aclaratorias sobre el mapeo: &lt;br /&gt;    &lt;ul&gt;&lt;br /&gt;      &lt;li&gt;Las líneas de la 5 a la 9, indican los Work Items a mapear. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;      &lt;li&gt;Las líneas 5 y 6 incluyen el atributo “fieldMap” cuyo valor indica el mapeo en particular, que se corresponden con las líneas 17 y 38 respectivamente. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;      &lt;li&gt;Adicionalmente en este código hago algunas aclaraciones al respecto, así que no habrá problema en entenderlo. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;      &lt;li&gt;Las líneas de la 60 a la 100, indican los diferentes valores para las opciones posibles de ciertos campos. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;      &lt;li&gt;Las líneas comentadas se corresponden principalmente con aquellos mapeos de campos que no existen en origen pero si en el destino (en el nuevo TeamProject), por tanto no las mapeo, puesto que no son requeridas. &lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Para completar el resto de mapeos, haz uso de los fichero “XML” de las distintas plantillas, así podrás conocer el detalle de los mapeos a realizar.&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Guarda los cambios “Save to Database. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Y comienza con la integración/migración “Current Migration” – “&lt;strong&gt;Start&lt;/strong&gt;” &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-lYkbhNUXKQs/Tp3U-DoTuMI/AAAAAAAAApk/yrEqk_T0lWs/s1600-h/image%25255B28%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-NoSAKe7CDuI/Tp3U_KKDi-I/AAAAAAAAAps/sDtEbS_Kc0w/image_thumb%25255B16%25255D.png?imgmax=800" width="533" height="461" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Una vez finalizado el proceso, podrás comprobar que el nuevo TeamProject contiene todo el código; Work Items, labels, Branching (sin “Trak Changeset” !), changeset asociados, etc., y si estableces como parámetro de configuración,&amp;#160; el “Workflow Type”, “Custom” para un “Frecuency”,&amp;#160; “ContinousAutomatic”, podrás comprobar que a medida que cambias código, haces “CheckIn”, etc., todo se verá reflejado en el nuevo como si se tratara del mismo TeamProject. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;De la misma manera que este proceso de integración entre dos TeamProject ha sido un éxito, también podrás hacerlo para distintas “Queries” de origen y por tanto, “Area Path”, etc. El peso principal recae sobre cada uno de los mapeos según he comentado antes, y podrás hacerlo, para distintas plantillas de proceso, Scrum, MSF Agile, etc., e incluso entre distintas&amp;#160; plantillas origen y destino.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Mucha suerte y espero que sirva de ayuda/aclaración, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://lh5.ggpht.com/-8RmVvEKgOgQ/Tp3U_3zQ2DI/AAAAAAAAAp0/pjQ8fnzdYBo/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos @TFS &lt;br /&gt;  &lt;br /&gt;Juanlu, elGuerre&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://eljuanlu.blogspot.com/2011/10/tfs-integration-tool-integrandomigrando_18.html" scrolling="no" frameborder="0" style="border:none; width:130px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-6237858016368995309?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/6237858016368995309/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=6237858016368995309&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/6237858016368995309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/6237858016368995309'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/10/tfs-integration-tool-integrandomigrando_18.html' title='TFS Integration Tool: Integrando/migrando de CMMI 4.2 a CMMI 5 y mapeos para Task y Requirements'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-AmfJ10XwKPc/Tp3UzE8KicI/AAAAAAAAAoc/wDFSRINP1wQ/s72-c/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7777954910289875619</id><published>2011-10-11T23:08:00.001+02:00</published><updated>2011-10-11T23:08:15.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure DataSync'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>SQL Azure DataSync Preview. Sincronizando… ¡Step by step!</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Como sabéis durante esta semana estamos en el &lt;a href="http://www.sqlpass.org/summit/2011/SummitContent.aspx"&gt;Pass Summit 2011&lt;/a&gt;, donde SQL es el protagonista y donde espero que salgan a relucir muchas de las novedades que estamos esperando y principalmente desde el área de Windows Azure, concretamente en este caso, SQL Azure.&lt;/p&gt;  &lt;p&gt;Esta son los puntos a tratar sobre &lt;a href="http://www.sqlpass.org/summit/2011/SummitContent.aspx#SQL_Azure"&gt;SQL Azure&lt;/a&gt; :&lt;/p&gt;  &lt;ol&gt;   &lt;ol&gt;     &lt;li&gt;A lap around Microsoft SQL Azure and a discussion of what’s new &lt;/li&gt;      &lt;li&gt;Building Offline Applications for Windows Phones and Other Devices using Sync Framework and SQL Azure &lt;/li&gt;      &lt;li&gt;Migrating &amp;amp; Authoring Applications to Microsoft SQL Azure &lt;/li&gt;      &lt;li&gt;Building Large Scale Database Solutions on SQL Azure &lt;/li&gt;      &lt;li&gt;Introducing SQL Azure Reporting Services &lt;/li&gt;      &lt;li&gt;Loading and Backing Up SQL Azure Databases &lt;/li&gt;      &lt;li&gt;SQL Azure Data Sync - Integrating On-Premises Data with the Cloud &lt;/li&gt;      &lt;li&gt;SQLCAT: SQL Azure Learning from Real-World Deployments &lt;/li&gt;      &lt;li&gt;SQLCAT: Administering SQL Azure and new challenges for DBAs &lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;De momento &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-data-sync-overview.aspx"&gt;SQL Azure Data Sync&lt;/a&gt; en su &lt;strong&gt;&lt;u&gt;nueva y reciente versión Preview&lt;/u&gt;&lt;/strong&gt; y su integración en el &lt;a href="https://windows.azure.com/default.aspx"&gt;Portal de Azure&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 5px" alt=" " src="http://social.technet.microsoft.com/wiki/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-05/7266.SADS_5F00_CTP2Scenarios.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;En un &lt;a href="http://eljuanlu.blogspot.com/2011/04/sql-azure-data-sync.html"&gt;post anterior&lt;/a&gt; ya comenté como se llevaba a cabo esta sincronización para la CTP 2. Ahora todo es más intuitivo y fácil gracias a los nuesvos &lt;strong&gt;Wizards&lt;/strong&gt; paso a paso. Muy bien conseguidos, sin duda !!!&amp;#160; +10.&lt;/p&gt;  &lt;p&gt;En primer lugar, lo que tenemos que hacer es generar una provisión, y para ello, bastará con hacer click en “&lt;strong&gt;Provisión&lt;/strong&gt;”, acertar los terminos de uso, seleccionar una subscripción y esperar unos segundos.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-SV2q7UTcDXI/TpSv4-ug6KI/AAAAAAAAAjo/fAQFl7sfr9E/s1600-h/image3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-PBM_mVbKXJg/TpSv58_Qw-I/AAAAAAAAAjw/410ikZLrnow/image_thumb1.png?imgmax=800" width="448" height="296" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A continuación ya estamos listo para comenzar el proceso de sincronización y seguir el Wizard, ¡a buen entendedor pocas palabras bastan!:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-w6fkYrV0upw/TpSv6eYjhUI/AAAAAAAAAj4/zGXUAKOy98w/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-7nAPm0luaLA/TpSv7IqnvHI/AAAAAAAAAkA/Aw305BwV3EM/image_thumb%25255B1%25255D.png?imgmax=800" width="443" height="123" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;He aquí los los pasos para trabajar con esta nueva versión y generar un proceso completo de sincronización en este caso una sincronización &lt;strong&gt;&lt;u&gt;BIDIRECCIONAL, entre una BBDD en SQL OnPremise y otra en SQL Azure&lt;/u&gt;&lt;/strong&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Indicar un nombre para el grupo de sincronización, ej.: “Sync 1” &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-oj7Zg4Axa4M/TpSv8Hfa2CI/AAAAAAAAAkI/5ZbGEiAdHKI/s1600-h/image77%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-kOTlizuLsK8/TpSv8jR-IVI/AAAAAAAAAkQ/ltGNAgWNP9U/image77_thumb.png?imgmax=800" width="381" height="70" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Añadir al proceso una BBDD SQL local &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-AQYciJ0ejZ0/TpSv9E2KZAI/AAAAAAAAAkY/ZW-kZ1J9opI/s1600-h/image87.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-OvtKfMte5tA/TpSv9snmAWI/AAAAAAAAAkg/zA-kx7G0SCE/image_thumb35.png?imgmax=800" width="244" height="91" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;La primera vez que ejecutes este paso (2) necesitarás instalar en local el software “Client Sync Agent”, de manera que este permitirá al Portal de Azure configurar las sincronizaciones&amp;#160; conociendo así las conexiones&amp;#160; SQL Server locales. Para completar este paso por primera vez sigue estas indicaciones: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-nPF2pszWvcY/TpSv-EqzclI/AAAAAAAAAko/N702I6nYc4c/s1600-h/image37%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-jAqudabj8k0/TpSv_A07dAI/AAAAAAAAAkw/Jkkpklq0v9Y/image37_thumb.png?imgmax=800" width="304" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-zUF1-a6G6sc/TpSv_osbMzI/AAAAAAAAAk4/FUV7xwy9xNw/s1600-h/image34%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-kk90dN2UIEs/TpSwARbi6EI/AAAAAAAAAlA/iUhnPFRuQiQ/image34_thumb.png?imgmax=800" width="303" height="248" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;A continuación descarga e Instala el “Client Sync Agent” (Herramienta de Configuración con SQL Server Local + Servicio Windows).&lt;/p&gt;    &lt;p&gt;Introduce un nombre cualquiera a asignar al agente. También tendrás que obtener la Key para poder configurar el “Client Sync Agent”.&lt;a href="http://lh4.ggpht.com/-0CAXzL_WX6M/TpSwA7bsFAI/AAAAAAAAAlI/YLW6WyfcBsw/s1600-h/image40%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh3.ggpht.com/-EmWv1OMG9-Q/TpSwBixYcvI/AAAAAAAAAlQ/RGsQpR4c_XQ/image40_thumb.png?imgmax=800" width="305" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Una vez instalado el cliente (necesitaras las credenciales de un usuario para hacer el logon del servicio Windows (Agente)), sigue estos otros pasos para configurar el agente:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Introduce la key obtenida en el paso anterior haciendo click en el botón &amp;quot;Submit Agent Key Configuration&amp;quot;. &lt;/li&gt;      &lt;li&gt;Introduce las credenciales del servidor local de SQL Server haciendo click en el botón “Register”. &lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-USHoqlFjAyo/TpSwCfIFy4I/AAAAAAAAAlY/WQNpfYq-zL4/s1600-h/image17%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh3.ggpht.com/-TP02E1KaNEI/TpSwCwMfjvI/AAAAAAAAAlg/p2H9nt4o7X0/image17_thumb.png?imgmax=800" width="305" height="246" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Vuelve al portal. Ahora ya podrás tener acceso a la BBDD local desde el portal de Azure y podrás continuar con el proceso.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Una vez completados los pasos anteriores o si ya tenías configurado un agente puedes optar por uno de las siguientes opciones, dependiendo de si ya habías creado o no una sincronización.&lt;/p&gt;  &lt;p&gt;Opción (1) - Por primera vez:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-0eUSV73-5w8/TpSwDn1UlAI/AAAAAAAAAlo/lpBlVUsEolA/s1600-h/image51%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-uoGx8Rs_tq8/TpSwEN7NvSI/AAAAAAAAAlw/qiPHWWM8CO0/image51_thumb.png?imgmax=800" width="297" height="258" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-IKZLpBnqXAA/TpSwE86mpMI/AAAAAAAAAl4/f-5N2P7OOxA/s1600-h/image48%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-wgytkc1RcWw/TpSwFXzqBzI/AAAAAAAAAmA/A6fAMF9KIpw/image48_thumb.png?imgmax=800" width="295" height="301" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Opción (2):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-LT-CXQcgBcE/TpSwF19WriI/AAAAAAAAAmI/6AZjLjtLs4g/s1600-h/image59%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-Emb1FUfbI78/TpSwHAvfwJI/AAAAAAAAAmQ/_ACyi0egD7s/image59_thumb.png?imgmax=800" width="294" height="233" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Paso 3: Ahora a configurar la BBDD de Azure sobre la que queremos realizar el proceso de sincronización, para ello, esta debe existir previamente.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-TOp7y0rE0cY/TpSwH_oxcgI/AAAAAAAAAmY/aoWIjLUTUjA/s1600-h/image%25255B8%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-QtLhHMdPeIk/TpSwIpC9sNI/AAAAAAAAAmg/tPhSE0DX4pM/image_thumb%25255B3%25255D.png?imgmax=800" width="326" height="141" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Paso 4: Indicar cada cuanto tiempo queremos que se ejecute la sincronización, si queremos o no habilitar el proceso de sincronización y la política de conflictos (que información prevalece ante un conflicto, la de SQL Azure (Hub) o SQL Server Local (Client)),&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-uA5I_BEXqvo/TpSwI1gaTGI/AAAAAAAAAmo/y3VHqq9r_Ck/s1600-h/image91%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-2RVFJLui3sA/TpSwJU9EuzI/AAAAAAAAAmw/kjeDFUZmjXE/image91_thumb.png?imgmax=800" width="274" height="204" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Paso 5: Editar el mapeo de sincronización, (&lt;strike&gt;eso sí, de momento para una sóla base de datos)&lt;/strike&gt; e incluso establecer filtros en relación a valores de campos.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/-n5NPwdfJbK8/TpSwJ84ZRCI/AAAAAAAAAm4/B62COBE8SCQ/s1600-h/image97.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-GrJFysqqtI8/TpSwKtQr35I/AAAAAAAAAnA/ce2z6lpTYbY/image_thumb38.png?imgmax=800" width="278" height="320" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Después de esto y para terminar, lo único que nos queda es “Deploy”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-yiJ8Q2fJKF0/TpSwLJHZ6II/AAAAAAAAAnI/qb3y0k2qZVE/s1600-h/image71.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-yWIhYZWRY6Y/TpSwLsm1EpI/AAAAAAAAAnQ/aAxnVHauitE/image_thumb28.png?imgmax=800" width="346" height="55" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y aquí, el resultado del portal una vez la sincronización ya está esta en curso:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-wbPTnYgJz_k/TpSwMWy1YWI/AAAAAAAAAnY/bJA-yEVpi3U/s1600-h/image68%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-1TB82zSRJfY/TpSwNPbP_eI/AAAAAAAAAng/1HWwr-8Rlzg/image68_thumb.png?imgmax=800" width="426" height="228" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez finalizado el proceso las BBDD, tanto la local como la SQL Azure, incluirán un mayor numero de objetos; tablas, procedimientos almacenados y tipos definidos por el usuario, todos ellos con el prefijo “DataSync.”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-noBkIY-g00k/TpSwNrtABdI/AAAAAAAAAno/XiRvJhVnbto/s1600-h/image73%25255B1%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-Vg5tWxjniTo/TpSwOYGkC0I/AAAAAAAAAnw/OrOHMio3IP4/image73_thumb.png?imgmax=800" width="231" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Proceso listo, modifiquemos donde modifiquemos, en SQL Server o en SQL Azure, la información se verá reflejada en ambos.&lt;/p&gt;  &lt;p&gt;También he de decir, que la consulta de logs (Log Viewer) ha mejorado bastante con respecto a su predecesor, ahora permite búsquedas por filtros (Sync Group, Agent, Database, Log Type y Date range):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-PcbWzj_lGOw/TpSwOw0o9cI/AAAAAAAAAn4/xRtF6XS_Irk/s1600-h/image%25255B13%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh5.ggpht.com/-KnZlXfFiKNI/TpSwPsFe3fI/AAAAAAAAAoA/Exx9KHE3cL4/image_thumb%25255B6%25255D.png?imgmax=800" width="350" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Si la sincronización en lugar de ser bidireccional, es entre BBDDs de Azure (“&lt;strong&gt;&lt;u&gt;Sync between SQL Azure databases&lt;/u&gt;&lt;/strong&gt;”), la instalación del Agente en local no es necesaria.&lt;/p&gt;  &lt;p&gt;Ahora a esperar a ver que más nos van contando en el &lt;a href="http://www.sqlpass.org/summit/2011/SummitContent.aspx"&gt;Pass Summit 2011&lt;/a&gt; !!! .&lt;/p&gt;  &lt;p&gt;Saludos    &lt;br /&gt;Juanlu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7777954910289875619?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7777954910289875619/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7777954910289875619&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7777954910289875619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7777954910289875619'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/10/sql-azure-datasync-preview.html' title='SQL Azure DataSync Preview. Sincronizando… ¡Step by step!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-PBM_mVbKXJg/TpSv58_Qw-I/AAAAAAAAAjw/410ikZLrnow/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-1413362408879461622</id><published>2011-10-08T21:40:00.001+02:00</published><updated>2011-10-08T21:40:05.071+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Azure Emulator SDK 1.5:  “There is already a listener on IP endpoint 127.0.0.1:12001”, Role State Unknow, …</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Hoy, con ganas de comenzar a ver algunas mejoras de Windows Azure SDK 1.5, parto con la puesta en marcha del entorno y para ello:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Instalar“WindowsAzureToolsVS2010.exe” (&lt;a href="http://www.microsoft.com/windowsazure/sdk/#"&gt;Web Installer&lt;/a&gt; ) y que en esta versión (todo en uno), incluye tanto el SDK 1.5 como las Tools para Visual Studio 2010. &lt;/li&gt;    &lt;li&gt;Seguidamente el Windows Azure AppFabric&amp;#160; 1.5&amp;#160; que podéis descargar desde &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=27421"&gt;aquí&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Al arrancar en modo debug (F5) la aplicación con un proyecto de Azure &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-yfaZ235xWSE/TpCm-fOJ7xI/AAAAAAAAAi0/h-3oyKLkMr4/s1600-h/image14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-FU8XfLG-0nU/TpCm-7FSKcI/AAAAAAAAAi4/lC3j4laO43s/image_thumb6.png?imgmax=800" width="267" height="209" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Se genera la BBDD “DevelopmentStorageDb20110816” necesaria para la simulación de Windows Azure en local&amp;#160; y todo parece ir bien, perooo, zaaaas, error del Storage Emulator (Alguna vez ya sucedió, pero esta vez se está haciendo de rogar, así que da lugar a un post, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-bqktmN9Rhc0/TpCm_YN64cI/AAAAAAAAAi8/vvzGoWQar7o/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-24SFL58Slko/TpCm_iXm5QI/AAAAAAAAAjA/bNSPey7auyQ/s1600-h/image3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh3.ggpht.com/-AFP4qzd1PWo/TpCnAuTIdoI/AAAAAAAAAjE/J__8JsmY9GQ/image_thumb1.png?imgmax=800" width="338" height="171" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Concretamente el error es:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“&lt;em&gt;There is already a listener on IP endpoint 127.0.0.1:&lt;strong&gt;12001&lt;/strong&gt;.&amp;#160; Make sure that you are not trying to use this endpoint multiple times in your application and that there are no other applications listening on this endpoint.&lt;/em&gt;”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Desde la línea de comando ejecutamos el siguiente comando:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; netstat /a /b&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y vemos que, efectivamente un proceso esta ocupando el puerto &lt;strong&gt;12001&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-4qURZucNQTQ/TpCnAynPsqI/AAAAAAAAAjI/tmcUqKQ03Fc/s1600-h/image18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh3.ggpht.com/-AAaM7oVVRL4/TpCnBXMZEJI/AAAAAAAAAjM/WqGDKSIPwrY/image_thumb8.png?imgmax=800" width="375" height="55" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Si se matamos el proceso, a veces, se auto-arranca, así que, o “dejamos de usar VMWARE (Cosa que debería hacer)” o bien:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;No cambiemos nada en el fichero “C:\Program Files\Windows Azure SDK\v1.5\bin\devstore\DSService.exe.config” para ver la configuración del “Windows Storage Emulator” puesto que obtendrás errores del tipo “&lt;em&gt;The process cannot access the file because it is being used by another process&lt;/em&gt;”:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-bmLUJ9zUJ90/TpCnBrjU3WI/AAAAAAAAAjQ/GVQUQ5Eyl9I/s1600-h/image20.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh4.ggpht.com/-hUUfmpSLypQ/TpCnCDXv3PI/AAAAAAAAAjU/XfTHmM8e-9I/image_thumb10.png?imgmax=800" width="370" height="136" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Por el momento con matar el servicio ha funcionado, pero aun así, me encuentro con este otro error: “&lt;em&gt;Role instances are taking longer than expected to start&lt;/em&gt;” (grrr…. vaya día….):&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-fvsiFwbTEk0/TpCnClqKkDI/AAAAAAAAAjY/RikHGL3HbkI/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-5XnpnFWlqvU/TpCnC5eqtDI/AAAAAAAAAjc/M93uubNuTfg/image_thumb11.png?imgmax=800" width="366" height="152" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Estos son los Know Issues detectados en Windows Azure SDK 1.5 hasta el momento&lt;/strong&gt;:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh506851.aspx"&gt;Incomplete Windows Azure Blob Download using DownloadToStream, DownloadToFile, DownloadText, and DownloadByteArray methods&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh472165.aspx"&gt;Windows Azure SDK 1.5 Compute Emulator Fails to Start&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh472164.aspx"&gt;Windows Azure SDK 1.5 Compute Emulator Listen Port Unavailable&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh134842.aspx"&gt;IIS7 Logs Are Not Collected Properly&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Como nota principal&lt;/strong&gt;: No debería estar ocupado ninguno de los puertos: 12000, 12001, 12002, 808, 16001, o 15100.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Reviso el “Compute Emulator UI” donde el estado de mi Web Role es “&lt;strong&gt;&lt;em&gt;Role State Unknow&lt;/em&gt;&lt;/strong&gt;”. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Finalmente, tras revisar todo nuevamente paso a paso; los diferentes Logs que genera el storage emulador, varios reinicios del visual estudio, deshabilitar los diagnósticos de Windows Azure de mi proyecto, etc, es que el &lt;strike&gt;maldito&lt;/strike&gt; puerto “808” pertenece a los bindings del “Default Web Site” en el IIS.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-Ngz34bhW21U/TpCnEhA5fFI/AAAAAAAAAjg/nMuOyEF7L68/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px; 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://lh6.ggpht.com/-H56t7d7vrKQ/TpCnFEd9F9I/AAAAAAAAAjk/v0L7jKMqarE/image_thumb%25255B1%25255D.png?imgmax=800" width="363" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Los eliminamos y después de tantas vueltas, todo queda funcionando correctamente. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora a celebrarlo con unas birras y una buena cena, ¡que es sabadete! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-bqktmN9Rhc0/TpCm_YN64cI/AAAAAAAAAi8/vvzGoWQar7o/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Espero que a mas de uno le evite una pesadilla !!!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Buen fin de semana a tod@s &lt;br /&gt;  &lt;br /&gt;Juanlu, ElGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-1413362408879461622?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/1413362408879461622/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=1413362408879461622&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1413362408879461622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1413362408879461622'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/10/azure-emulator-sdk-15-there-is-already.html' title='Azure Emulator SDK 1.5:  “There is already a listener on IP endpoint 127.0.0.1:12001”, Role State Unknow, …'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-FU8XfLG-0nU/TpCm-7FSKcI/AAAAAAAAAi4/lC3j4laO43s/s72-c/image_thumb6.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-8436755990500269818</id><published>2011-10-02T22:45:00.001+02:00</published><updated>2011-10-02T22:46:27.003+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio .NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2011'/><title type='text'>Instalando Windows 8, Visual Studio 2011 y TFS 2011. Despegando…</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-hirHz3PkwLc/TojNTAqEccI/AAAAAAAAAhY/Lk9wkNkewO4/s1600-h/image2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-IPasF4qFhGk/TojNTvN-aOI/AAAAAAAAAhc/R7MELw0NSP0/image_thumb.png?imgmax=800" width="244" height="48" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al final, me he decido a probar, aunque realmente, ¡Ya estaba tardando…! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-HfX_ZHiR9H8/TojNTwRYlQI/AAAAAAAAAhg/-YLTbuKdTlE/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;, y en lugar de descargar una máquina virtual ya montada como dice &lt;a href="http://elbruno.com/"&gt;Bruno&lt;/a&gt;, &lt;a href="http://elbruno.com/2011/09/28/vs11-howto-montar-la-vm-de-pruebas-de-vs11-y-tfs11-sin-hyper-v/"&gt;aquí&lt;/a&gt;, he preferido currármelo un poco, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-HfX_ZHiR9H8/TojNTwRYlQI/AAAAAAAAAhg/-YLTbuKdTlE/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;.&amp;#160; Pues&amp;#160; bien, después de unos 11minutos, el Windows 8 ya está instalado en una VM del disco SSD, he aquí algunos pantallazos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Puedes logarte con credenciales de Windows Live ID. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-MyD5xjG_xXg/TojNUXPYkwI/AAAAAAAAAhk/5CFs3s8xGAk/s1600-h/image3.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://lh4.ggpht.com/-jnExk2oU_FY/TojNU48oZJI/AAAAAAAAAho/ft50nJj71Hw/image_thumb1.png?imgmax=800" width="244" height="197" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Menú de Inicio con una experiencia de usuario totalmente nueva, ¡Bueno Windows Phone&amp;#160; ya iba por este camino!.&amp;#160; Las tablets con Windows 8 están cerca &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh4.ggpht.com/-HfX_ZHiR9H8/TojNTwRYlQI/AAAAAAAAAhg/-YLTbuKdTlE/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;!!! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-SYlWcfW1Uww/TojNVwGqFGI/AAAAAAAAAhs/JHR5EOP9X0M/s1600-h/image9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-zXzfc3WBHEg/TojNWR2q2yI/AAAAAAAAAhw/FloZCpRIVJc/image_thumb3.png?imgmax=800" width="244" height="156" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Task Manager más “cooool” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-eUtXxPt3goI/TojNXP1YWZI/AAAAAAAAAh0/OAWs4Q76JWE/s1600-h/image12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-Pml2PtYa97o/TojNXh697GI/AAAAAAAAAh4/tSYuu3uGS0c/image_thumb4.png?imgmax=800" width="244" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Un Windows Explorer con Ribbons. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-gOkd1Xd0Ow8/TojNYW1RIcI/AAAAAAAAAh8/GnD6Lz0EKr0/s1600-h/image15.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-NV7W8HH_ems/TojNZKNMTAI/AAAAAAAAAiA/AX2joL9uCw0/image_thumb5.png?imgmax=800" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y mucho más, que te gustará, sin duda, Y si tienes pantalla táctil, más aun, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://lh6.ggpht.com/-aJnpo72qqQ0/TojNZQEE6_I/AAAAAAAAAiE/grc7LPUL76E/wlEmoticon-winkingsmile2.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;Y lo mejor, que de echo era el objetivo de este post, el Visual Studio 2011. Aunque esta versión de Windows 8 ya viene con&amp;#160; el&amp;#160; Visual Studio 11 Express, yo voy a por la Developer Preview !!! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-YLppHJpemr4/TojNZzjq4pI/AAAAAAAAAiI/Qoc7EgWFFZY/s1600-h/image18.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://lh6.ggpht.com/-2I1SV6nBpNU/TojNaS7UXzI/AAAAAAAAAiM/g4b4hYFEpW0/image_thumb6.png?imgmax=800" width="188" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En este caso, después de más de 11 minutos, ya está todo listo para comenzar a indagar, aunque bueno, muchos de vosotros ya lo estáis haciendo, pero yo no voy a ser menos,jeje… entre todos le iremos sacando el jugo !!! &lt;/p&gt;  &lt;p&gt;Muchas nuevas características: &lt;a href="http://msdn.microsoft.com/en-us/library/hh420390(v=VS.110).aspx"&gt;.NET 4.5&lt;/a&gt;, integración con HMTL5, &lt;a href="http://msdn.microsoft.com/en-us/library/hh162058(v=vs.110).aspx"&gt;MSBuild 4.5&lt;/a&gt;, integración con office, (nuevo para PowerPoint “&lt;a href="http://elbruno.com/2011/09/23/vs11-storyboarding-powerpoint-new/"&gt;StoryBoarding&lt;/a&gt;”, donde &lt;a href="http://elbruno.com/"&gt;El Bruno&lt;/a&gt;, nos deleita con un breve resumen), nuevo &lt;a href="http://elbruno.com/2011/09/29/tfs11-el-nuevo-concepto-de-team-en-tfs11/"&gt;TFS 2011&lt;/a&gt;(&lt;a href="http://elbruno.com/"&gt;Bruno&lt;/a&gt; ya está le está metiendo caña y al que habrá que seguir !). &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-0feH2B-AE08/TojNa7x0drI/AAAAAAAAAiQ/oOrG2NqOuJU/s1600-h/image%25255B8%25255D.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://lh6.ggpht.com/-Blh5ym1RxhI/TojNb-ry0NI/AAAAAAAAAiU/8Ej8wrQL5w4/image_thumb%25255B4%25255D.png?imgmax=800" width="586" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Por &lt;a href="http://blogs.msdn.com/b/jasonz/archive/2011/09/14/announcing-visual-studio-11-developer-preview.aspx"&gt;aquí&lt;/a&gt;, Jason Zander hace un pequeño Tour. Y, además, integración con &lt;font style="background-color: #ffffff"&gt;ASP.NET MVC 4: Nueva pantalla de inicio bastante más currada,&amp;#160; con Popup para el registro, nueva pestaña de contacto con acceso a Tweeter y a Facebook y más.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-FPVsACVqjNQ/TojNdGaSZ-I/AAAAAAAAAiY/tUqgJf8p_9s/s1600-h/image%25255B24%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-3BrteLk-ANo/TojNedOKgqI/AAAAAAAAAic/jfKEzq8sqkU/image_thumb%25255B13%25255D.png?imgmax=800" width="390" height="214" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Por el momento el problema encontrado tiene que ver con las “Windos Azure Rools for Visual Studio”, habrá que esperar, así que por el momento mientras trabaje con Windows Azure tendré que hacerlo con Visual Studio 2010. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Triste" src="http://lh3.ggpht.com/-HQ4X4eI5TLE/TojNekG0J0I/AAAAAAAAAig/-i_xPUO0AFI/wlEmoticon-sadsmile%25255B2%25255D.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/-cYyacqGy04Y/TojNfW77yfI/AAAAAAAAAik/yncz_3hzrFw/s1600-h/image%25255B10%25255D.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://lh3.ggpht.com/-va3Roqf7Yos/TojNf0EHu8I/AAAAAAAAAio/uLoG80gMP3k/image_thumb%25255B6%25255D.png?imgmax=800" width="463" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finalmente, el TFS ha quedado instalado y listo para comenzar a trabajar e ir poco a poco indagando en las novedades. Fácil, sencillo y sin problema alguno y, eso sí, con un portal de administración mucho más intuitivo y conseguido.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-V5BFr6lTyOo/TojNgamevkI/AAAAAAAAAis/YvKshK7EiIA/s1600-h/image%25255B32%25255D.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://lh6.ggpht.com/-fO3wHATctew/TojNhMA1ggI/AAAAAAAAAiw/Y-eRF1cz35s/image_thumb%25255B19%25255D.png?imgmax=800" width="468" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hasta aquí, una breve introducción a lo que esta viniendo, y que ya mucho de vosotros estáis comenzado a conocer. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;p&gt;PD: De nuevo comenzaré a estar por aquí más a menudo. “Hay etapas duras y momentos más complicados, pero todo es paciencia” !!! &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-8436755990500269818?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/8436755990500269818/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=8436755990500269818&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8436755990500269818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8436755990500269818'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/10/instalando-windows-8-y-visual-studio-11.html' title='Instalando Windows 8, Visual Studio 2011 y TFS 2011. Despegando…'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-IPasF4qFhGk/TojNTvN-aOI/AAAAAAAAAhc/R7MELw0NSP0/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-8421894141750966110</id><published>2011-06-22T20:55:00.001+02:00</published><updated>2011-06-22T20:55:17.448+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><title type='text'>[EVENT] Materials of the event Zero Code + Azure + LightSwitch</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Muy buenas, &lt;/p&gt;  &lt;p&gt;Ayer 21 de Junio de 2011, y con un horario americano, junto con &lt;a href="http://elbruno.com/"&gt;Bruno&lt;/a&gt;, preparamos un pequeño Web Cast sobre LigthSwitch&amp;#160; y de sus posibilidades incluido el deploy en&amp;#160; Azure.&amp;#160; &lt;/p&gt;  &lt;p&gt;Tal y como responsables de las demos y según dice Bruno en su &lt;a href="http://geeks.ms/blogs/elbruno/archive/2011/06/22/evento-materiales-del-evento-zero-code-azure-lightswitch.aspx?utm_source=feedburner&amp;amp;utm_medium=twitter&amp;amp;utm_campaign=Feed%3A+elbruno+%28El+Bruno%29"&gt;post&lt;/a&gt;, a continuación os dejo el enlace para que podáis descargaos todo el &lt;strong&gt;material&lt;/strong&gt;:&amp;#160; &lt;a title="https://skydrive.live.com/?cid=bef06dffdb192125&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=1&amp;amp;id=BEF06DFFDB192125%213506#!/?cid=3b5366f3f9a9a830&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=4&amp;amp;id=3B5366F3F9A9A830%212252" href="https://skydrive.live.com/?cid=bef06dffdb192125&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=1&amp;amp;id=BEF06DFFDB192125%213506#!/?cid=3b5366f3f9a9a830&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=4&amp;amp;id=3B5366F3F9A9A830%212252"&gt;https://skydrive.live.com/?cid=bef06dffdb192125&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=1&amp;amp;id=BEF06DFFDB192125%213506#!/?cid=3b5366f3f9a9a830&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=4&amp;amp;id=3B5366F3F9A9A830%212252&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La ppt la podéis descargar de &lt;a href="https://skydrive.live.com/#!/?cid=bef06dffdb192125&amp;amp;sc=documents&amp;amp;nl=1&amp;amp;uc=1&amp;amp;id=BEF06DFFDB192125%213506"&gt;este enlace&lt;/a&gt;, donde las dejo Bruno, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/-1rizgkXsNes/TgI6lEpXyTI/AAAAAAAAAgA/k8TPopDeQq0/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;Espero que podais disfrutar de LightSwitch y de las ventajas que aporta. &lt;/p&gt;  &lt;p&gt;Regards @Redmon&lt;/p&gt;  &lt;p&gt;Juanlu&lt;/p&gt;  &lt;p&gt;PS:&amp;#160; [Tweet]&amp;#160; &lt;em&gt;“Great !!!! . Patterns &amp;amp; Practices FY12 Roadmap: Enterprise Library 6.0 in June 2012. .NET 4.5 &amp;amp; Win8 integration pack”&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-8421894141750966110?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/8421894141750966110/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=8421894141750966110&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8421894141750966110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8421894141750966110'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/06/event-materials-of-event-zero-code.html' title='[EVENT] Materials of the event Zero Code + Azure + LightSwitch'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-1rizgkXsNes/TgI6lEpXyTI/AAAAAAAAAgA/k8TPopDeQq0/s72-c/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-31987356486438373</id><published>2011-06-21T17:35:00.001+02:00</published><updated>2011-06-21T17:35:57.963+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AppFabric'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Windows Azure AppFrabric CTP Junio 2011</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El equipo de Windows Azure &lt;a href="http://blogs.msdn.com/b/appfabric/archive/2011/6/20/announcing-the-windows-azure-appfabric-june-ctp.aspx"&gt;anunció ayer&lt;/a&gt; una nueva CTP de Windows App Fabric con las siguientes características:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;AppFabric Developer Tools &lt;/li&gt;    &lt;li&gt;AppFabric Application Manager &lt;/li&gt;    &lt;li&gt;The Composition Model - a set of .NET Framework extensions for composing applications on the Windows Azure platform &lt;/li&gt;    &lt;li&gt;Formal support for executing Windows Workflow Foundation (WF) on Windows Azure and the composition of Windows Communication Foundation (WCF) and WF services, as well as custom code, into a composite applicatio &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Por el momento sólo podemos hacer una petición para obtener el acceso y desde el portal de “&lt;a href="https://portal.appfabriclabs.com/"&gt;Laboratorio&lt;/a&gt;” .&lt;/p&gt;  &lt;p&gt;A ver cuanto tardan en darnos el acceso para comenzar a “cacharrear” y ver hasta donde podemos llegar &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/-3A6LeT0PwO0/TgC6XRpEtII/AAAAAAAAAf0/nyLtrBmD-LY/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @Seattle&lt;/p&gt;  &lt;p&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-31987356486438373?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/31987356486438373/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=31987356486438373&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/31987356486438373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/31987356486438373'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/06/windows-azure-appfrabric-ctp-junio-2011.html' title='Windows Azure AppFrabric CTP Junio 2011'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-3A6LeT0PwO0/TgC6XRpEtII/AAAAAAAAAf0/nyLtrBmD-LY/s72-c/wlEmoticon-openmouthedsmile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-190154075405777881</id><published>2011-06-15T21:39:00.001+02:00</published><updated>2011-06-15T21:39:50.391+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Casi “Zero code”: Lightswitch en Azure</title><content type='html'>&lt;p&gt;&lt;img src="http://elguerre.files.wordpress.com/2011/05/image.png" /&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Como simpre liado de un lado para otro, y de proyecto en proyecto, ¡todo son prisas!, eso si, en ocasiones como esta, en donde los chicos de &lt;a href="http://www.secondnug.com/"&gt;Second Nug&lt;/a&gt; nos permiten estar con vosotros, no se pueden dejar escapar, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/-PgZi8gyOvcw/TfkKhQe00tI/AAAAAAAAAfw/jL1nnzHGIZM/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" /&gt; Incluso estando en EEUU, el próximo día 21 de Junio de 2011, entre las 19:30h y las 21:30h (hora española), estaremos con vosotros &lt;a href="http://elbruno.com/"&gt;Bruno Capuano&lt;/a&gt; y “el menda”,&amp;#160; compartiendo temas de Lightswithch y Azure.&amp;#160; Espeamos&amp;#160; que os guste.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032488974&amp;amp;EventCategory=4&amp;amp;culture=es-ES&amp;amp;CountryCode=ES"&gt;Aquí&lt;/a&gt; os&amp;#160; dejo el enlace del evento.&lt;/p&gt;  &lt;p&gt;Saludos&lt;/p&gt;  &lt;p&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-190154075405777881?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/190154075405777881/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=190154075405777881&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/190154075405777881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/190154075405777881'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/06/casi-zero-code-lightswitch-en-azure.html' title='Casi “Zero code”: Lightswitch en Azure'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-PgZi8gyOvcw/TfkKhQe00tI/AAAAAAAAAfw/jL1nnzHGIZM/s72-c/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-5827906237127724747</id><published>2011-05-26T21:58:00.001+02:00</published><updated>2011-05-26T21:58:48.282+02:00</updated><title type='text'>Nueva versión de Windows Azure SDK PHP (v3.0)</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-IF187_pbkys/Td6w9ZTMK6I/AAAAAAAAAfo/kk3yiAeQh3U/s1600-h/Windows%252520Azure%252520Big%25255B7%25255D.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="Windows Azure Big" border="0" alt="Windows Azure Big" src="http://lh6.ggpht.com/-sXUv_Olry0o/Td6w9yY0PVI/AAAAAAAAAfs/P4iVtKnNnuc/Windows%252520Azure%252520Big_thumb%25255B5%25255D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Esta vez soy breve, así, que aquí os dejo esta nueva versión, &lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/brian_swan/archive/2011/05/26/new-version-of-windows-azure-sdk-for-php-v-3-0-available.aspx" href="http://blogs.msdn.com/b/brian_swan/archive/2011/05/26/new-version-of-windows-azure-sdk-for-php-v-3-0-available.aspx"&gt;http://blogs.msdn.com/b/brian_swan/archive/2011/05/26/new-version-of-windows-azure-sdk-for-php-v-3-0-available.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos&lt;/p&gt;  &lt;p&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-5827906237127724747?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/5827906237127724747/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=5827906237127724747&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5827906237127724747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5827906237127724747'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/05/nueva-version-de-windows-azure-sdk-php.html' title='Nueva versión de Windows Azure SDK PHP (v3.0)'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-sXUv_Olry0o/Td6w9yY0PVI/AAAAAAAAAfs/P4iVtKnNnuc/s72-c/Windows%252520Azure%252520Big_thumb%25255B5%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-5436282106112293081</id><published>2011-05-05T20:51:00.000+02:00</published><updated>2011-05-05T23:18:27.706+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Materiales del evento LightSwitch + Azure + ZeroCode</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TcMUH1B-c6I/AAAAAAAAAfQ/4rQS-A3qLhM/s1600-h/image%5B2%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TcMUITDBPoI/AAAAAAAAAfU/ywv20p_pdv0/image_thumb.png?imgmax=800" width="244" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Pues esta vez, simplemente dejaos el enlace al material presentado esta mañana en las oficinas de Microsoft junto con &lt;a href="http://elbruno.com/"&gt;El Bruno&lt;/a&gt; y referentes al evento &lt;a href="http://eljuanlu.blogspot.com/2011/04/evento-maxima-productividad-y-time-to.html"&gt;Visual Studio Lightswitch + Windows Azure + Zero Code&lt;/a&gt;, de echo, os dejo un enlace a su blog, puesto que el ya se me adelantó a subir dicho material, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TcMUI_hLyKI/AAAAAAAAAfY/1AqO4fEZj3k/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;Pues acceder a la presentación &lt;a href="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ligthswitchzerocodev1-1-110505131642-phpapp01&amp;amp;stripped_title=visual-studio-2010-ligthswitch-azure-zero-code&amp;amp;userName=elbruno"&gt;AQUÍ&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Muchísimas gracias a todos los asistentes y esperamos que haya sido de utilidad&lt;/p&gt;  &lt;p&gt;A partir de ahora, intentaré explotar más en profundidad todo lo que hemos visto,&lt;/p&gt;  &lt;p&gt;Saludos&lt;/p&gt;  &lt;p&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-5436282106112293081?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/5436282106112293081/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=5436282106112293081&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5436282106112293081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5436282106112293081'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/05/materiales-del-evento-lightswitch-azure.html' title='Materiales del evento LightSwitch + Azure + ZeroCode'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TcMUITDBPoI/AAAAAAAAAfU/ywv20p_pdv0/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7852625551437690137</id><published>2011-04-28T15:44:00.001+02:00</published><updated>2011-04-28T15:44:35.466+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF RIA Services'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Communication Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>WCF RIA Services como OData, SOAP o JSON</title><content type='html'>&lt;p&gt;Casi a punto ya de agotar las vacaciones de Semana Santa, he querido escribir este post que ya llevaba tiempo como Draft, espero que sea de utilidad.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;¿Estas intentando trabajar con RIA Services?&amp;#160; &lt;/li&gt;    &lt;li&gt;¿Quieres exponer tu servicio RIA a través de un servico web? &lt;/li&gt;    &lt;li&gt;¿SOAP o REST? &lt;/li&gt;    &lt;li&gt;¿Quieres exponer tus datos SQL con EntityFramework&amp;#160; a través de un Servicio Web en cuestion de unos cuantos clicks? &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Si estas interesado en conocer las respuestas a estas preguntas este es tu post:&lt;/p&gt;  &lt;p&gt;Antes de comenzar asegura que las DLLs instaladas son las adecuadas. Para ello revisa que en la ruta “&lt;em&gt;&lt;strong&gt;C:\Program Files (x86)\Microsoft SDKs\RIA Services\v1.0\Libraries\Server&lt;/strong&gt;&lt;/em&gt;” se encuentra el siguiente conjunto de Dlls:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TblvJB_5ocI/AAAAAAAAAew/rCwMrlQqmTM/s1600-h/image9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TblvKu6wMBI/AAAAAAAAAe0/NSNF8yFIz08/image_thumb4.png?imgmax=800" width="470" height="323" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;De no ser así, sigue lo siguientes pasos hasta conseguirlo. Esto es debido a que los distintos cambios de versiones instaladas sobreescriben a las anteriores y en la mayoria de los casos, verás que sólo existen la dlls “Microsoft.xxx” o las “System.xxx”. ¡Vaya complicación!, de no ser por mi compañero y amigo “David Gonzalez” todavía estaría instalando, ¡Muchas gracias!.&lt;/p&gt;  &lt;p&gt;Para evitar todo esto:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Desinstala&lt;/strong&gt;:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Microsoft Silverlight &lt;/li&gt;    &lt;li&gt;Microsoft Silverlight Tools for Visual Studio 2010 &lt;/li&gt;    &lt;li&gt;Microsoft Silverlight 4 SDK &lt;/li&gt;    &lt;li&gt;Microsoft F# Runtime for Silverlight 4 &lt;/li&gt;    &lt;li&gt;WCF RIA Services v1.0 for Visual Studio 2010 &lt;/li&gt;    &lt;li&gt;WCF RIA Services Toolkit &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;strong&gt;Instala&lt;/strong&gt; en el siguiente orden. Importante tener muy en cuenta las versiones:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=177508"&gt;Silverlight4_Tools.exe&lt;/a&gt; (en Ingles). &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=cd3191a1-def4-4caa-8120-1f0bbcf4bb05&amp;amp;displaylang=en"&gt;RiaServices.msi&lt;/a&gt; (RIA Services v1.0 for Visual Studio 2010 – Mayo 2010). &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=C4F02797-5F9E-4ACF-A7DC-C5DED53960A6"&gt;RiaServicesToolkit.msi&lt;/a&gt; (Aunque esta disponible la versión de Diciembre, instala la versión de Mayo 2010 con objeto de que sea compatible con RiaServices puesto que de este aun no está disponible una versión más actualizada. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Ahora el Visual Studio está listo para comenzar.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Desde Abril de 2011 ya está disponible la nueva versión de “WCF RIA Services ToolKit” que es compatible con la versión de Mayo de 2010 y por tanto podemos evitar la ardua tarea anterior, adicionalmente, tambien está disponible WCF RIA Services v1.0 SP1, con lo que tenemos todo al completo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ahora ya podemos comenzar a crear nuestro servico RIA&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;Para exponer un servicio como RIA, añadiremos un nuevo item de tipo “Domain Service Class” a nuestro proyecto Web. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;NOTA&lt;/strong&gt;: No neceariamente tiene que ser un proyecto web, pero si pretendes sacarle partico al servicio y no solo para el acceso desde SilverLigth o LigthSwitch, entonces utiliza un servicio web como “Best Practice”:&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TblvLnUJjpI/AAAAAAAAAe4/9chqnjqOGmk/s1600-h/image%5B10%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TblvMvA99QI/AAAAAAAAAe8/vP8_MnGyDes/image_thumb%5B4%5D.png?imgmax=800" width="438" height="322" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez incluido este nuevo item, veremos que en el “web.config” se ha añadido lo siguiente:&lt;/p&gt;  &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;domainServices&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoints&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;OData&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;endpoints&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;domainServices&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora nuestro servicio (REST) ya está listo para ser consultado como si de un Atom, RSS, etc se tratara, eso sí, no existe ningún servicio &amp;quot;*.svc&amp;quot; físicamente, sin embargo se autogenera un “.svc” de la siguente manera: &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;strong&gt;Formato de la url dinámica&lt;/strong&gt;: &lt;a href="http://localhost.../[namespace]-[DomainServiceName"&gt;&lt;strong&gt;&lt;a href="http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&amp;gt;.svc/OData/"&gt;-.svc/OData/&amp;quot;&amp;gt;http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&amp;gt;.svc/OData/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;strong&gt;Ejemplo&lt;/strong&gt;:&amp;#160; &lt;a href="http://localhost:&amp;lt;Puerto&amp;gt;/WcfService1-DomainService1.svc/ODATA/"&gt;/WcfService1-DomainService1.svc/ODATA/&amp;quot;&amp;gt;http://localhost:&amp;lt;Puerto&amp;gt;/WcfService1-DomainService1.svc/ODATA/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Una vez que ya tenemos este servicio, ¿Porqué no utilizarlo como SOAP o incluso como JSON?, para ello bastará con incluir las siguientes dos líneas/endpoints&amp;#160; en la sección &lt;strong&gt;&amp;lt;domainServices&amp;gt; &amp;lt;endpoints&amp;gt;&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;soap&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;json&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting, Version=4.0.0.0,  Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora tendremos tres url distintas para el acceso a cada uno de estos distintos endpoints:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://localhost.../[namespace]-[DomainServiceName"&gt;&lt;strong&gt;&lt;/strong&gt;ODATA: &lt;a href="http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&amp;gt;.svc/OData/"&gt;-.svc/OData/&amp;quot;&amp;gt;http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&lt;/a&gt;&lt;strong&gt;&amp;gt;.svc/OData/&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;a href="http://localhost.../[namespace]-[DomainServiceName"&gt;&lt;strong&gt;&lt;/strong&gt;SOAP: &lt;a href="http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&amp;gt;.svc"&gt;-.svc&amp;quot;&amp;gt;http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&lt;/a&gt;&lt;strong&gt;&amp;gt;.svc&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;/a&gt;&lt;strong&gt;JSON:&lt;a href="http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&amp;gt;.svc/json/GetProducts/"&gt;-.svc/json/GetProducts/&amp;quot;&amp;gt; http://localhost:[Puerto]/&amp;lt;namespace&amp;gt;-&amp;lt;DomainServiceName&amp;gt;.svc/json/GetProducts/&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Para probar el punto (1) podemos utilizar la herramienta “&lt;a href="http://www.silverlight.net/content/samples/odataexplorer/"&gt;OData Explorer&lt;/a&gt;” o incluso con el Propio Exel (su extension &lt;a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyId=e081c894-e4ab-42df-8c87-4b99c1f3c49b&amp;amp;displaylang=es"&gt;PowerPivot Excel 2010&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Para el&amp;#160; punto (2) podemos añadir una referencia web a uno de nuestros proyectos y consumirlo desde .NET como cualquier otro endponit WCF, es decir, se generará el Proxy correspondiente.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Y, para el punto (3), podemos utilizar el “&lt;a href="http://shrimpworks.za.net/projects/json-explorer/"&gt;JSON Explorer&lt;/a&gt;”. Para ello accedemos a la url correspondiente sin el último backslash (“/”) desde Internet Explorer y abrimos el fichero generado con notepad.&amp;#160; Copiamos el contenido en el “Source” de esta pequeña herramienta y, aquí estan los datos:&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TblvNhNgiGI/AAAAAAAAAfA/jawXcoXb-s4/s1600-h/image%5B16%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TblvOxSZypI/AAAAAAAAAfE/iePbs25VdQI/image_thumb%5B8%5D.png?imgmax=800" width="384" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora sí, nuestros endpoints estarán listos para comenzar a ser usados.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Uso desde Ligthswitch.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para que todos estos EndPoint funcionen correctamente es necesario que nuestra clase de Dominio contenga el atributo de clase “&lt;strong&gt;[EnableClientAccess()]&lt;/strong&gt;”, sin embargo “&lt;a href="http://msdn.microsoft.com/es-es/lightswitch/default(en-us).aspx"&gt;VS Ligthswitch&lt;/a&gt;” recomienda el uso de este atributo y por tanto mostrará el siguiente mensaje: “&lt;em&gt;This data source will be publicly accessible from outside your application.&amp;#160; It is recommended that EnableClientAccess is disabled on the WCF RIA Service.&lt;/em&gt;”&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TblvPstvNlI/AAAAAAAAAfI/g3bXMttqq9Q/s1600-h/image%5B11%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TblvQfx0qnI/AAAAAAAAAfM/f2FcjzaKGDo/image_thumb%5B5%5D.png?imgmax=800" width="293" height="305" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En cualquier caso siempre podremos continuar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Nada más por el momento, espero haber aclarado algunos temas.&amp;#160; Si quieres conocer más detalle y ver ejemplos sobre su consumo, echa un vistazo a este enlace: &lt;a title="http://www.silverlightshow.net/items/WCF-RIA-Services-Part-10-Exposing-Domain-Services-To-Other-Clients.aspx" href="http://www.silverlightshow.net/items/WCF-RIA-Services-Part-10-Exposing-Domain-Services-To-Other-Clients.aspx"&gt;WCF RIA Services Part 10 - Exposing Domain Services To Other Clients&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos @Higuera la Real &lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7852625551437690137?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7852625551437690137/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7852625551437690137&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7852625551437690137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7852625551437690137'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/04/wcf-ria-services-como-odata-soap-o-json.html' title='WCF RIA Services como OData, SOAP o JSON'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BVsPnNgOu_E/TblvKu6wMBI/AAAAAAAAAe0/NSNF8yFIz08/s72-c/image_thumb4.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-2281006517749059979</id><published>2011-04-12T23:46:00.001+02:00</published><updated>2011-04-12T23:51:14.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>[EVENTO] Máxima productividad y ‘Time-To-Market’ con el nuevo RAD Microsoft VS.LightSwitch y Windows Azure</title><content type='html'>&lt;p&gt;&lt;img alt="Workshop – Máxima productividad y &amp;#39;Time-To-Market&amp;#39; con el nuevo RAD Microsoft VS.LightSwitch y Windows Azure." src="https://mseventsww.microsoft.com/BannerImages/ebf8497a-8d01-452b-aab7-bfaa65a31ec4.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Aunque el compañero Bruno Capuano ya lo ha comentado &lt;a href="http://brunocapuano.wordpress.com/2011/04/11/evento-mxima-productividad-y-time-to-market-con-el-nuevo-rad-microsoft-vs-lightswitch-y-windows-azure/"&gt;aqui&lt;/a&gt;, no quería ser menos, además de ser yo el que voy a tener la suerte de compartir con él este evento, donde pretendemos darlo todo y mas !!!.&lt;/p&gt;  &lt;p&gt;He aquí el enlace donde puedes encontrar todo el detalle del evento: &lt;a title="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032480432&amp;amp;Culture=es-ES" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032480432&amp;amp;Culture=es-ES"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032480432&amp;amp;Culture=es-ES&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;¡Espero veos por allí el próximo &lt;strong&gt;5 de Mayo&lt;/strong&gt; tras unas buenas vacaciones de Semana Santa!&lt;/p&gt;  &lt;p&gt;Saludos   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-2281006517749059979?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/2281006517749059979/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=2281006517749059979&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2281006517749059979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2281006517749059979'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/04/evento-maxima-productividad-y-time-to.html' title='[EVENTO] Máxima productividad y ‘Time-To-Market’ con el nuevo RAD Microsoft VS.LightSwitch y Windows Azure'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-241645789562956275</id><published>2011-04-03T22:27:00.001+02:00</published><updated>2011-04-03T22:28:30.201+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure DataSync'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>SQL Azure Data Sync. Sincronizando…</title><content type='html'>&lt;p&gt;Tras este grato fin de semana y tras haber celebrado junto con alguno de vosotros el 10º Aniversario de Avanade, ¡FELIZ ANIVERSARIO! me encuentro con ánimo de escribir este Post, antes de que finlize. Además, hace ya un tiempo que recibí el código de activación de SQL Azure Data Sync y llevo con ganas de escribir el resultado de las pruebas desde hace ya un tiempo.&lt;/p&gt;  &lt;p&gt;En primer lugar decir que SQL Azure Data Sync&amp;#160; &lt;u&gt;lleva a cabo la sincronización de datos entre SQL Server (On-premisse) y SQL Azure&lt;/u&gt;, &lt;a href="http://www.microsoft.com/en-us/sqlazure/datasync.aspx"&gt;aquí&lt;/a&gt;, podemos encontra más información.&lt;/p&gt;  &lt;p&gt;A continuación enumero los pasos para poner en marcha el componente y para comprobar su funcionamiento.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Haciendo uso del Portal de Azure, crear un Base de Datos en SQL Azure utilizando la opción “create” una vez seleccionado el servidor.&lt;/li&gt;    &lt;li&gt;Introducir el nombre de la Base de Datos “NorthWind”.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TZjYFEG7TTI/AAAAAAAAAdw/ahxjJG2aRD8/s1600-h/image%5B10%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TZjYFgCHRoI/AAAAAAAAAd0/v2kCyWx78Xw/image_thumb%5B4%5D.png?imgmax=800" width="348" height="198" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Partir de la BBDD local por todos conocida “NorthWind” y optar por una de las dos opciones para crearla en SQL AZure.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Haciendo uso de la herramienta de exportación de Scripts de SQL Server 2008 “Generate Scripts…” (Seleccionar en este caso). En este caso ten en cuenta dos propiedades ”&lt;strong&gt;avanzadas&lt;/strong&gt;”&amp;#160; importantes: “&lt;strong&gt;&lt;em&gt;Script for the database engine Type&lt;/em&gt;&lt;/strong&gt;” y “&lt;strong&gt;&lt;em&gt;Types of data to scripts&lt;/em&gt;&lt;/strong&gt;” (Para este caso no es importante, pero será necesario tenerlo en cuenta a la hora de crear BBDD con datos). Una vez generado el Script crear una coneción con el servidor de SQL Azure para la BBDD creada durante los pasos anteriores, y ejecutar este scripts.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TZjYGFyiftI/AAAAAAAAAd4/_PvxWFpxDKg/s1600-h/image%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TZjYGrNGE4I/AAAAAAAAAd8/RQtx9oiderU/image_thumb%5B1%5D.png?imgmax=800" width="375" height="339" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Haciendo uso de la herramienta&amp;#160; SQL Azure Migration Wizard (“SQL Azure MW v3.5.7”), partiendo en este caso desde la BBDD local o incluso desde el fichero de Script SQL referente a la misma. En este caso, la herramienta hará todo el trabajo una vez indicado el origen y destino.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TZjYHOrqQsI/AAAAAAAAAeA/v4ZZnw7tLVk/s1600-h/image%5B6%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TZjYHhIfZ7I/AAAAAAAAAeE/jDfDlB3QhSw/image_thumb%5B2%5D.png?imgmax=800" width="220" height="244" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Aunque no son necesario crear las BBDD en SQL Azure con Datos he aprovechado para comentar el proceso de migración, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TZjYHxQlzUI/AAAAAAAAAeI/KXmLetky55s/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;Ahora a poner en marcha el proceso de sincronización de datos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Acceder al portal de SQL Azure Data Sync “&lt;a title="https://datasync.azure.com/SADataSync.aspx" href="https://datasync.azure.com/SADataSync.aspx"&gt;https://datasync.azure.com/SADataSync.aspx&lt;/a&gt;” &lt;/li&gt;    &lt;li&gt;En la pestaña “Agents” &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Genera una key para el agente introduciendo un nombre.&lt;/li&gt;      &lt;li&gt;Descarga el servicio, “&lt;strong&gt;AgentServiceSetup.msi&lt;/strong&gt;” e instalalo en local para la sincronización.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TZjYIVbyBsI/AAAAAAAAAeM/9iRUEHI7NCY/s1600-h/clip_image001%5B6%5D.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="clip_image001" border="0" alt="clip_image001" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TZjYIkmc37I/AAAAAAAAAeQ/OViKFrcKiOU/clip_image001_thumb%5B3%5D.png?imgmax=800" width="560" height="118" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;Configura el Servicio indicando entre la key generada en el paso anterior y añadiendo la BBDD local de la que quieres realizar la sincronización.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;A partir de aquí, pensaba seguir comentando uno a uno todos los pasos, pero,&amp;#160; ¿Para que hacerlo si tenemos un buen articulo en la TechNet, bastante mejor que el que pueda completar yo? En este tambien se explica los pasos necesarios para el registro para la obtención del código de activación.&lt;/li&gt;      &lt;li&gt;&lt;a title="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-data-sync-scenario-sql-server-to-sql-azure-synchronization.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-data-sync-scenario-sql-server-to-sql-azure-synchronization.aspx"&gt;&lt;strong&gt;http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-data-sync-scenario-sql-server-to-sql-azure-synchronization.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Una vez finalizado el proceso y comenzada la sincronización los datos estarán replicados tanto en SQL On-Premisse como en SQL Azure, y por ello, como comentaba antes no sería necesario la creación de datos en SQL Azure al crear la BBDD.&lt;/p&gt;    &lt;p&gt;Tras dicho proceso, si consultamos las BBDD tanto On-Premisse com SQL Azure, veremos que se han generado nuevos objetos:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Una nueva tabla por cada una de las existentes y con el sufijo “&lt;strong&gt;_dss_tracking&lt;/strong&gt;”.&lt;/li&gt;      &lt;li&gt;Un “User-Defined Tables Types” por cada tabla de la BBDD.&lt;/li&gt;      &lt;li&gt;Once (11) nuevos procedimientos almacenados por cada tabla. Ej.: para la tabla “Categories”.&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TZjYJBKALxI/AAAAAAAAAeU/2TTVTrfg2Lk/s1600-h/image%5B17%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TZjYJjLplFI/AAAAAAAAAeY/L_529DeRoVY/image_thumb%5B7%5D.png?imgmax=800" width="286" height="485" /&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TZjYKEZ8xyI/AAAAAAAAAec/P9LOYjqg6So/s1600-h/image%5B20%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TZjYKiPhkYI/AAAAAAAAAeg/_viK16q_CT4/image_thumb%5B8%5D.png?imgmax=800" width="244" height="186" /&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TZjYLH1lieI/AAAAAAAAAek/FQsaIGJM4dk/s1600-h/image%5B26%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TZjYLm4NBdI/AAAAAAAAAeo/wG9gte1gluk/image_thumb%5B10%5D.png?imgmax=800" width="244" height="199" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Como siempre hay que encontrar alguna pega, el número de objetos de la BBDD puede verse incrementado enormemente si de por sí&amp;#160; nuestra BBDD tiene ya muchos. &lt;/p&gt;    &lt;p&gt;Adicionalmente, la sincronización es un éxito, eligiendo el modod “Bi-Direccional”, modifiques donde modifiques los cambios son reflejados.&lt;/p&gt;    &lt;p&gt;Habrá que seguir probando para encontrar algunas limitaciónes, ¡si es que las tiene! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TZjYMNWshII/AAAAAAAAAes/FsHEDhSF3bA/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Hasta aquí una vez más, Azure sigue ofreciendo posibilidades y acercándonos más al verdadero mundo Cloud.&lt;/p&gt;    &lt;p&gt;Saludos @Azureños     &lt;br /&gt;Juanlu&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-241645789562956275?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/241645789562956275/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=241645789562956275&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/241645789562956275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/241645789562956275'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/04/sql-azure-data-sync.html' title='SQL Azure Data Sync. Sincronizando…'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TZjYFgCHRoI/AAAAAAAAAd0/v2kCyWx78Xw/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-4849780224700114841</id><published>2011-03-20T23:07:00.001+01:00</published><updated>2011-03-20T23:07:55.041+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Desplegando LightSwitch en Azure. Varios click y CERO Código.</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Llegó el momento, y&amp;#160; tras haber podido instalar el SP1 de Visual Studio+ LightSwitch Beta 2 (¡Como ya comenté en un &lt;a href="http://eljuanlu.blogspot.com/2011/03/visual-studio-2010-sp1-y-lightswitch.html"&gt;post anterior&lt;/a&gt;, no era posible!), he continuado mis pasos con LightSwitch y ahora, con una&amp;#160; sencilla, sencilla publicación en Azure.&lt;/p&gt;  &lt;p&gt;He aquí los pasos para el deploy en Azure de una aplicación LigthSwitch + acceso a datos con SQL Azure.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Antes de nada, veamos la configuración del deploy/publicación.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ55xzaEdI/AAAAAAAAAbs/Z7KdE0RoTvA/s1600-h/image%5B7%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ57PXyNUI/AAAAAAAAAbw/FifUapanNc4/image_thumb%5B3%5D.png?imgmax=800" width="525" height="256" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Pulsamos “Publish…”&amp;#160; y a seguir los pasos del wizard.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ59QxbQHI/AAAAAAAAAb0/436N2_iT57c/s1600-h/image%5B15%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ5-khQoVI/AAAAAAAAAb4/DES3CsaCwuU/image_thumb%5B7%5D.png?imgmax=800" width="462" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Como puede verse, podemos optar por modo “Desktop” o “Web” (Yo opto por el Web).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6AJd87VI/AAAAAAAAAb8/P-R-SWmYoDY/s1600-h/image%5B19%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6B-N937I/AAAAAAAAAcA/69gxKqdNCpM/image_thumb%5B9%5D.png?imgmax=800" width="466" height="341" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Seguidamente en el siguiente paso del Wizard introducimos&amp;#160; el “Subcription ID” copiado del portal de Azure. Exite un boton de acceso directo al mismo “&lt;em&gt;Open the Windows Azure Portal&lt;/em&gt;”.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Seleccionamos un certificado&lt;/strong&gt; o creamos uno nuevo, en cuyo caso será necesario “Copy Path” para localizar la ubicación del mismo y poderlo &lt;strong&gt;subir al portal de Azure&lt;/strong&gt;, concretamente a “&lt;strong&gt;&lt;em&gt;Management Certificates&lt;/em&gt;&lt;/strong&gt;”.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6Dgk4qHI/AAAAAAAAAcE/RUVJ_LbykTA/s1600-h/image%5B27%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6FEEk_pI/AAAAAAAAAcI/E0KboQkT8Ws/image_thumb%5B13%5D.png?imgmax=800" width="470" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Si no subimos el certificado a Azure según comento en el punto anterior, veremos el siguiente mensaje (“&lt;em&gt;Could not connect to Windows Azure using the provided Subscription ID and Certificate&lt;/em&gt;”) y no podremos continuar:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6GkdrU9I/AAAAAAAAAcM/qmrjI472Mgc/s1600-h/image%5B31%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6JEiFdBI/AAAAAAAAAcQ/Y7F4o6RF9pc/image_thumb%5B15%5D.png?imgmax=800" width="407" height="153" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Si todo va bien, accederemos al siguiente paso, donde seleccionaremos los datos de nuestra subscripción de azure sobre la que queremos realizar el despliegue. Adicionalmente&amp;#160; seleccionamos el “Environment”(Deployment) en el que se va a realizar el despliegue “Production” o “Staging”.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6LWNGG3I/AAAAAAAAAcU/igw4orvYRHE/s1600-h/image%5B39%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6N4ZRkZI/AAAAAAAAAcY/55l4UxYc2T0/image_thumb%5B19%5D.png?imgmax=800" width="488" height="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;En el siguiente caso seleccionamos un certificado existente (.pfx) o creamos un nuevo certificado &amp;lt;&lt;em&gt;Create new self-signed-certificate….&lt;/em&gt;&amp;gt;. &lt;strong&gt;IMPORTANTE&lt;/strong&gt;. Este certificado tendremos que subirlo tambien a Azure a través de su portal, pero en este caso, lo asociaremos a la subscripción del despliegue.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6OnjhfuI/AAAAAAAAAcc/bnDqEMqLqJM/s1600-h/image%5B44%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6Pjr3qeI/AAAAAAAAAcg/odsLzlA7Lhs/image_thumb%5B22%5D.png?imgmax=800" width="487" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ahora toca el turno a la configuración de la conexión de datos (SQL Azure).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6QdEyD3I/AAAAAAAAAck/ZJ-wCvq41eQ/s1600-h/image%5B52%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6SfT2mvI/AAAAAAAAAco/ptjJ4EcskAM/image_thumb%5B26%5D.png?imgmax=800" width="491" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;En el siguiente paso volvemos a seleccionar un certificado (distino al del selecionado en los pasos previos) o crear un nuevo certificado.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6UealjNI/AAAAAAAAAcs/N9RcuE2_ibw/s1600-h/image%5B60%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6WRvpL-I/AAAAAAAAAcw/W40BYMFDgGw/image_thumb%5B30%5D.png?imgmax=800" width="498" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Si intentamos seleccionar el mismo certificado (.pfx) selecionado previamente en pasos anteriores, encontrearemos este otro error “&lt;em&gt;Unable to add ‘&amp;lt;XapCertifie&amp;gt;.pfx’. A file with than name alread exists&lt;/em&gt; ”:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6Xz2-Q5I/AAAAAAAAAc0/7z0I0eAqOUU/s1600-h/image%5B56%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6az8VvsI/AAAAAAAAAc4/e3q-Fw0MdKA/image_thumb%5B28%5D.png?imgmax=800" width="350" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Una vez más y si todo va bien, pasaremos al siguiente paso, al último.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6dzLg-oI/AAAAAAAAAc8/FirwLA9o9JQ/s1600-h/image%5B67%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6gDCeabI/AAAAAAAAAdA/iwB8SDb14rY/image_thumb%5B33%5D.png?imgmax=800" width="499" height="365" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt; “&lt;strong&gt;Publish…”&lt;/strong&gt; y a esperar varios minutos con el siguiente mensaje en Visual Studio.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6iVrNnzI/AAAAAAAAAdE/6CdPEpHfuKs/s1600-h/image3%5B2%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6jKyQu3I/AAAAAAAAAdI/qDas8DtqraE/image3_thumb%5B1%5D.png?imgmax=800" width="411" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6jl5kXDI/AAAAAAAAAdM/7pTfZ1pOSt8/s1600-h/image6%5B1%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6nz5xvdI/AAAAAAAAAdQ/14GxdNmh3tQ/image6_thumb.png?imgmax=800" width="565" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Una vez finalizada la espera.&amp;#160; Espera necesaria para la subida de los ficheros “.cspkg” y “ServiceConfiguration.cscfg” al storage de Azure, concretamente a un container “lightswitch”. A continuación se abrirá el portal de azure&amp;#160; y comenzará el despliegue.&lt;/li&gt; &lt;/ul&gt; &lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6oWmoHAI/AAAAAAAAAdU/oNtRmkgAal8/s1600-h/image28.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://lh4.ggpht.com/_BVsPnNgOu_E/TYZ6rdLQW1I/AAAAAAAAAdY/merYzzhuiEA/image_thumb14.png?imgmax=800" width="470" height="140" /&gt;&lt;/a&gt;  &lt;ul&gt;   &lt;li&gt;Finalmente la aplicación esta en Azure (“EN LA NUBE”).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6sNMaAXI/AAAAAAAAAdc/eTlWqghJjyM/s1600-h/image%5B72%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TYZ6tJHzUAI/AAAAAAAAAdg/fgPwtBEeRC0/image_thumb%5B36%5D.png?imgmax=800" width="549" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ahora podemos eliminar el contenido del container “lightswitch” de Azure Storage. ¡Que pena que lo lo haga el despliegue de forma automática!. Será para la “Release”.&amp;#160;&amp;#160; Junto a este pequeño inconveniente, encuentro otro adicional, sólo existe un camino para el despligue. LightSwich lo controla todo, no es posible hacer despligues manuales a partir de los ficheros de despliegue. ¡Bueno si, en el momento que comience la publicación, abortamos y en la carpeta “Bin\Debug” encontraremos dichos ficheros! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TYZ6tt0eNCI/AAAAAAAAAdk/rkdGQhEAzZY/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;.&amp;#160; Desde mi punto de vista y sólo es una idea, el equipo de Azure está pensando 100% en el “Zero Code”, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ6t8oToZI/AAAAAAAAAdo/mO2Z9c-XdT4/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saluods @LightSwitch/SAzure   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4849780224700114841?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4849780224700114841/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4849780224700114841&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4849780224700114841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4849780224700114841'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/03/desplegando-lightswitch-en-azure-varios.html' title='Desplegando LightSwitch en Azure. Varios click y CERO Código.'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BVsPnNgOu_E/TYZ57PXyNUI/AAAAAAAAAbw/FifUapanNc4/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-5892807207243148793</id><published>2011-03-14T00:20:00.001+01:00</published><updated>2011-03-14T00:20:00.415+01:00</updated><title type='text'>SQL Error: “database 'msdb' cannot be opened due to inaccessible files or insufficient memory or disk space”</title><content type='html'>&lt;p&gt;¡Y yo que pensaba que el SQL no se corrompía¡.&amp;#160; Esta tarde/noche estaba trabajando con el SQL cuando de repente&amp;#160; Zaaas: &lt;em&gt;“&lt;u&gt;database 'msdb' cannot be opened due to inaccesible files or insufficiente memory or disk space&lt;/u&gt;”.&amp;#160; &lt;/em&gt;Al abrir el Management Studio y desplegar el nodo “Databases” aparecía constantemente este error además del correspondiente en el log de eventos: “&lt;em&gt;The log scan number (309:536:1) passed to log scan in database 'msdb' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup&lt;/em&gt;”.&lt;/p&gt;  &lt;p&gt;En mi caso y después de algunas pruebas y “vueltas” la &lt;strong&gt;solución&lt;/strong&gt; ha sido:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Copiar los ficheros “&lt;strong&gt;MSDBData.mdf” y “MSDBLog.ldf&lt;/strong&gt;” desde la ruta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Template Data” a la ruta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA”.&amp;#160; &lt;/li&gt;    &lt;li&gt;Ejecutar desde una nueva consuta del Management Studio el script “&lt;strong&gt;instmsdb.sql&lt;/strong&gt;”&amp;#160; situado en la carpeta “C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Install”&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Es posible comprobar el estado de la base de datos, ejecutando la consulta&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=select&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;select&lt;/a&gt; state_desc databasestatus_sysdtabase &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=from&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;from&lt;/a&gt; sys.databases &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=where&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;where&lt;/a&gt; name ='&lt;span style="color: #8b0000"&gt;msdb&lt;/span&gt;'&amp;#160;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;cuyo resultado será “RECOVERY_PENDING”, sin embargo y una vez completados los pasos anteriores el resultado pasará a ser “ONLINE” lo que indicará que todo ha vuelto a la normalidad, ¡ooooooppppppps, que alegría!.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Aunque no estoy seguro, es posible que partiendo de cualquier fichero “MSDBData.mdf” y “MSDBLog.ldf”, de un compañero, máquina virtual, etc. y siguiendo estos pasos el problema quede resuelto.&lt;/p&gt;  &lt;p&gt;Saludos   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-5892807207243148793?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/5892807207243148793/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=5892807207243148793&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5892807207243148793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5892807207243148793'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/03/sql-error-database-cannot-be-opened-due.html' title='SQL Error: “database &amp;#39;msdb&amp;#39; cannot be opened due to inaccessible files or insufficient memory or disk space”'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-5652785706508455406</id><published>2011-03-09T23:58:00.001+01:00</published><updated>2011-03-09T23:58:00.301+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LightSwitch'/><title type='text'>Visual Studio 2010 SP1 y LightSwitch deja de funcionar !!!</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;p&gt;Acaba de salir el SP1 de Visual Studio 2010, jeje… ¡Es lo que tienen este tipo de aventuras!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Error&lt;/strong&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Error&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 46&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;An exception occurred when building the database for the application.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Method not found: 'Void Microsoft.Data.Schema.Sql.SchemaModel.ISqlSimpleColumn.set_IsIdentity(Boolean)'.&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0\Microsoft.LightSwitch.targets&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 95&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 10&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AzureLightSwithcDemo1&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Pasos que he seguido: (Mejor, mirad la solución, más abajo, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TXgF7qYj1KI/AAAAAAAAAbM/V5PD2SYm4eA/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;)&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Despues de buscar en internet y seguir algunos pasos, como los de este enlace, &lt;a href="http://social.msdn.microsoft.com/Forums/en/lightswitchgeneral/thread/8a67fc8b-1221-4764-ab84-64a711fae4b2"&gt;“http://social.msdn.microsoft.com/Forums/en/lightswitchgeneral/thread/8a67fc8b-1221-4764-ab84-64a711fae4b2&lt;/a&gt;”, mi problema continua asi, que lo siguiente es “REPARAR” el SQL Server:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TXgF8Xt3M5I/AAAAAAAAAbQ/7FDehC64e5A/s1600-h/image3.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://lh6.ggpht.com/_BVsPnNgOu_E/TXgF9jL7hKI/AAAAAAAAAbU/llY54GOhfBM/image_thumb1.png?imgmax=800" width="305" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Nada, tampoco soluciona nada.&lt;/p&gt;    &lt;p&gt;El problema continua, y por dar más detalle, concretamente en las siguientes líneas del fichero “C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0\Microsoft.LightSwitch.targets”:&lt;/p&gt;    &lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;BuildSchema&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Inputs&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;@(LightSwitchModel)&amp;quot;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #ff0000"&gt;InstallDirectory&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;$(LightSwitchPath)&amp;quot;&lt;/span&gt;&lt;br /&gt;              &lt;span style="color: #ff0000"&gt;OutputDirectory&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Bin\Data&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;Reinstalo LighSwitch y nada, todo sigue igual. No hay error de código pero tras la compilación aparece este “&lt;strike&gt;maldito&lt;/strike&gt;” error.&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Solución&lt;/strong&gt;:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;No hay. Desinstala el SP1 de Visual studio. He aquí la referencia que ha publicado hoy el equipo de LightSwitch: &lt;a title="http://blogs.msdn.com/b/lightswitch/archive/2011/03/08/lightswitch-beta-1-is-incompatible-with-visual-studio-2010-sp1.aspx" href="http://blogs.msdn.com/b/lightswitch/archive/2011/03/08/lightswitch-beta-1-is-incompatible-with-visual-studio-2010-sp1.aspx"&gt;http://blogs.msdn.com/b/lightswitch/archive/2011/03/08/lightswitch-beta-1-is-incompatible-with-visual-studio-2010-sp1.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En fin, que se le va a hacer, habrá que esperar a la Beta 2 de LigthSwitch, que saldrá en breve.&amp;#160; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos &lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-5652785706508455406?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/5652785706508455406/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=5652785706508455406&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5652785706508455406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5652785706508455406'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/03/visual-studio-2010-sp1-y-lightswitch.html' title='Visual Studio 2010 SP1 y LightSwitch deja de funcionar !!!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TXgF7qYj1KI/AAAAAAAAAbM/V5PD2SYm4eA/s72-c/wlEmoticon-openmouthedsmile2.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-4634384925947629461</id><published>2011-03-03T19:34:00.001+01:00</published><updated>2011-03-03T19:34:09.797+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Depuración'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Algunos “Workarrounds” programando para Windows Azure</title><content type='html'>&lt;p&gt;Hola a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt; ,&lt;/p&gt;  &lt;p&gt;En esta ocasion, me gustaría comentar algunos workarrounds sobre errores que podemos encontrar durante los desarrollos para Windows Azure.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;“&lt;em&gt;There was an error attaching the debugger to the IIS worker process for URL'' for role instance&lt;/em&gt;” &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TW_fEdE2azI/AAAAAAAAAa4/q2jhzKR-Nzg/s1600-h/image3.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://lh3.ggpht.com/_BVsPnNgOu_E/TW_fFxMUPzI/AAAAAAAAAa8/4WjUOfwcbj4/image_thumb1.png?imgmax=800" width="338" height="204" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Solución&lt;/strong&gt;: Incluye la línea “ &amp;lt;compilation debug=&amp;quot;true&amp;quot; targetFramework=&amp;quot;4.0&amp;quot; /&amp;gt;” dentro de “&amp;lt;system.web&amp;gt;” del web.config.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;¿Quieres evitar que&amp;#160; el Compute Emulator del SDK 1.3 muestre constantemente la venta siguiente cuando tengas abierto un “web.config en el Visual Studio”? &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TW_fGsmB4aI/AAAAAAAAAbA/zc2JlXuC7UA/s1600-h/image14.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://lh6.ggpht.com/_BVsPnNgOu_E/TW_fHcb5ZqI/AAAAAAAAAbE/aezOeFfcDQ8/image_thumb6.png?imgmax=800" width="418" height="152" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Solución&lt;/strong&gt;: Incluye la instrucción&amp;#160; “&lt;em&gt;&lt;strong&gt;attrib -r &amp;quot;$(ProjectDir)Web.Config&lt;/strong&gt;” en la propiedad “Post-build Event command line”&lt;/em&gt; en la propiedades del proyecto web.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Could not load file or assembly ‘msshrtmi’ or one of its dependencies. An attempt was made to load a program with an incorrect format. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Solución:&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ol&gt;   &lt;li&gt;Abre el proyecto en notepad &lt;/li&gt;    &lt;li&gt;Elimina el tag xml “PlatformTarget” de todas las “PropertyGroup” &lt;/li&gt;    &lt;li&gt;Ejemplo de un property group. &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;lt;PropertyGroup Condition=&amp;quot; ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ &amp;quot;&amp;gt;        &lt;br /&gt;&amp;lt;DebugSymbols&amp;gt;true&amp;lt;/DebugSymbols&amp;gt;         &lt;br /&gt;&amp;lt;OutputPath&amp;gt;bin\&amp;lt;/OutputPath&amp;gt;         &lt;br /&gt;&amp;lt;DefineConstants&amp;gt;DEBUG;TRACE&amp;lt;/DefineConstants&amp;gt;         &lt;br /&gt;&amp;lt;DebugType&amp;gt;full&amp;lt;/DebugType&amp;gt;         &lt;br /&gt;&lt;strong&gt;&lt;u&gt;&amp;lt;PlatformTarget&amp;gt;AnyCPU&amp;lt;/PlatformTarget&amp;gt;&lt;/u&gt;&lt;/strong&gt;         &lt;br /&gt;&amp;lt;ErrorReport&amp;gt;prompt&amp;lt;/ErrorReport&amp;gt;         &lt;br /&gt;&amp;lt;Optimize&amp;gt;false&amp;lt;/Optimize&amp;gt;         &lt;br /&gt;&amp;lt;WarningLevel&amp;gt;4&amp;lt;/WarningLevel&amp;gt;         &lt;br /&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Adicionalmente me gustaría dejar algunas referencias al blog de &lt;a href="http://blogs.msdn.com/b/cesardelatorre/"&gt;Cesar de la Torre (Microsoft)&lt;/a&gt; donde encontrarás otros“workarrounds”: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/cesardelatorre/archive/2011/02/06/how-to-solve-error-when-deploying-windows-azure-app-on-wa-sdk-v1-3-the-communication-object-system-servicemodel-channels-servicechannel-cannot-be-used-for-communication-because-it-is-in-the-faulted-state.aspx"&gt;The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/cesardelatorre/archive/2010/12/20/handling-sql-azure-connections-issues-using-entity-framework-4-0.aspx"&gt;Handling SQL Azure Connections issues using Entity Framework 4&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Irán apareciendo más sobre la marcha y, sobre la marcha los iremos viendo! &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TW_fHsJnuaI/AAAAAAAAAbI/aLnW2Hw25UQ/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;Saludos    &lt;br /&gt;Juanlu     &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4634384925947629461?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4634384925947629461/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4634384925947629461&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4634384925947629461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4634384925947629461'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/03/algunos-workarrounds-programando-para.html' title='Algunos “Workarrounds” programando para Windows Azure'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_BVsPnNgOu_E/TW_fFxMUPzI/AAAAAAAAAa8/4WjUOfwcbj4/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-2940684058988543301</id><published>2011-03-02T17:07:00.001+01:00</published><updated>2011-03-02T17:07:07.130+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Lync'/><title type='text'>Actualiza tu OCS (Office Communicator) a Microsoft Lync con sólo tener instalado el cliente</title><content type='html'>&lt;p&gt;Muy buenas,&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Como persona inquieta y “enreda” como me consideran algunos, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TW5pyXqdDAI/AAAAAAAAAaU/B9ClY4zI7b8/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;, hoy me decidí a instalar Microsoft Lync (“nueva version del OCS mejorada”), pero el problema es que me encontré con este error: “Cannot sign in to Lync:&amp;#160; Cannot sign in because the server version is incompatible with Microsoft Lync 2010. ”&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TW5rIEd8tYI/AAAAAAAAAao/f2EdFZcSJvw/s1600-h/image4.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://lh3.ggpht.com/_BVsPnNgOu_E/TW5rI51ZeeI/AAAAAAAAAas/MdZVhz04IHU/image_thumb2.png?imgmax=800" width="237" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;La solución es muy fácil.&amp;#160; Una vez instalado Microsoft Lync 2010 en tu ordendaor:&lt;/p&gt;    &lt;ol&gt;     &lt;li&gt;Busca en el registro de windows el path“[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]”. Sino existe creala. &lt;/li&gt;      &lt;li&gt;Una vez encontrada o creada crea “DisableServerCheck&amp;quot; de tipo DWORD. &lt;/li&gt;      &lt;li&gt;Establece el&amp;#160; valor “00000001” &lt;/li&gt;      &lt;li&gt;Tras estos pasos tendrás algo similar a esto:&lt;/li&gt;   &lt;/ol&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TW5rJqa9RsI/AAAAAAAAAaw/Pn5-57NbvDw/s1600-h/image9.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://lh4.ggpht.com/_BVsPnNgOu_E/TW5rKbvQgtI/AAAAAAAAAa0/kQJzI_4GyOo/image_thumb5.png?imgmax=800" width="453" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;seguro que alguna funcionalidad no estará activada, pero bueno, al menos por el momento tengo el Lync, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TW5pyXqdDAI/AAAAAAAAAaU/B9ClY4zI7b8/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;. Sobre la marcha veremos que va pasando !!!.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Aqúi dejo una &lt;a href="http://social.technet.microsoft.com/Forums/en-US/ocsclients/thread/1743fca3-d2aa-460d-85dc-003b2572f0c8/"&gt;referencia&lt;/a&gt; donde encontrar más detalles. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Gracias a otros enredas !!!   &lt;br /&gt;Saludos    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-2940684058988543301?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/2940684058988543301/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=2940684058988543301&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2940684058988543301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2940684058988543301'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/03/actualiza-tu-ocs-office-communicator.html' title='Actualiza tu OCS (Office Communicator) a Microsoft Lync con sólo tener instalado el cliente'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BVsPnNgOu_E/TW5pyXqdDAI/AAAAAAAAAaU/B9ClY4zI7b8/s72-c/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-9083169553857079470</id><published>2011-02-21T23:56:00.001+01:00</published><updated>2011-02-21T23:56:06.130+01:00</updated><title type='text'>Instala un disco de estado sólido (SSD) para que tu PC vuele</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;¿Quieres cambiar de ordenador porque el que tienes consideras que va muy lento?, seguro que esto lo has pensado muchas veces y si eres programador, más aún.&amp;#160; Todos conocemos las tarjetas SSD, pues un disdo de estado sólido, es practicamente lo mismo pero más grande &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtYjwZbnI/AAAAAAAAAZc/bQFLYlUso50/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;. ¿Y si es más grande por que no ulitarlo como disco principal del ordendor? Hace unos días me decidí ha hacer esta operación (¡que seguro que más de uno ya ha llevado a cabo!), principalmente porque Edu y Roberto me “picaron” acelerando asi mi inquietud.&amp;#160; Pues bien, en esta occasion y con objeto de poder llevar a cabo mejor &lt;strong&gt;&lt;u&gt;mis proyectos de Azure&lt;/u&gt;&lt;/strong&gt;, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtYjwZbnI/AAAAAAAAAZc/bQFLYlUso50/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;, os dejo aquí el resultado de mi pequeña “investigación”.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pasos&lt;/strong&gt;:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Elige un disco duro&lt;/strong&gt; en función del dinero que puedas gastarte, no obstante, te recomiendo uno de 120GB. Hecha un vistazo a &lt;a href="http://www.pccomponentes.com/discos_duros_ssd.html"&gt;PCComponentes&lt;/a&gt; (muy buen trato, rápidos y “buena gente”) donde podrás eligir entre ellos, en mi caso opte por el “&lt;a href="http://www.pccomponentes.com/g_skill_phoenix_pro_ssd_120gb.html"&gt;G.Skill Phoenix Pro SSD 120GB&lt;/a&gt;”&amp;#160; aunque el “&lt;a href="http://www.pccomponentes.com/corsair_force_f120_ssd_120gb.html"&gt;Corsair Force F120 SSD 120GB&lt;/a&gt;” tambien es una buena alternativa, de echo no sabría decir si mejor o no, no obstante a lo largo de este post me referiré a este último con objeto de hacer alguna comparativa. &lt;/li&gt;    &lt;li&gt;Si tienes un portatil y quieres sustituir tu unidad de DVD por otro disco duro secundario,&amp;#160; sigue estos pasos sino olvida este paso:      &lt;ul&gt;       &lt;li&gt;Utiliza la herramienta&amp;#160; “&lt;a href="http://store.microsoft.com/help/iso-tool"&gt;Windows 7 USB/DVD Download Tool&lt;/a&gt;”&amp;#160; para arrancar el PC desde un USB. &lt;/li&gt;        &lt;li&gt;Accede a la web del fabricante de tu portatil y compra un soporte adecuando, en mi caso, para&amp;#160; un DELL latitutde E6400 (y para compatibles) lo hice desde &lt;a href="http://newmodeus.com/shop/index.php?main_page=product_info&amp;amp;products_id=224"&gt;aquí&lt;/a&gt;. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Instala el Disco SSD&lt;/strong&gt; reemplazando el anterior. &lt;/li&gt;    &lt;li&gt;Instala el Disco “viejo” y adaptalo según el soporte comentado en el punto 2. Solo si has optado por sustituir la unidad de DVD &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Configura la bios&lt;/strong&gt; para asegurar un mejor rendimiento del dicos, si es posible elige “&lt;strong&gt;aHCI&lt;/strong&gt;”, conseguirás hasta un 15% más de rendimiento en algunos casos y dependerá de disco que finalmente eligas, ¡yo consegui este incremento, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtYjwZbnI/AAAAAAAAAZc/bQFLYlUso50/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;! &lt;/li&gt;    &lt;li&gt;Asegura de tener configurada la bios para arrancar desde el USB o desde el DVD. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Instala Windows 7 &lt;/strong&gt;en este nuevo disco. &lt;/li&gt;    &lt;li&gt;Sigue los pasos de esta &lt;a href="http://thessdreview.com/optimization-guides/the-ssd-optimization-guide-2/"&gt;página&lt;/a&gt; para el &lt;strong&gt;máximo partido (rendimiento)&lt;/strong&gt; a tu disco duro. Te sorprenderás de la cantidad de cosas que ahora no son necesarias para tu Windows 7 funcione. No necesitarás paginación, Indexación, etc.. lo que implica a su vez un menor consumo de CPU, memoria, etc. &lt;/li&gt;    &lt;li&gt;Si utilizas el &lt;strong&gt;Bitlocker&lt;/strong&gt;, ten cuidado, el rendimiento de tu disco duro se verá decrementado en un 60% ó 70% aproximadamente, no obstante, seguiras teniendo unas mejoras “brutales”. &lt;/li&gt;    &lt;li&gt;Si eres como yo y no te conformas con esto, utiliza &lt;a href="http://www.techpowerup.com/downloads/1749/mirrors.php"&gt;esta herramienta&lt;/a&gt; gratuita the Benchmark y compruebalo tu mismo. &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Ejecutala antes y después de configurar el Bitlocker para ver las diferencias. &lt;/li&gt;      &lt;li&gt;En algunos discos, como ocurre con “&lt;a href="http://www.pccomponentes.com/corsair_force_f120_ssd_120gb.html"&gt;Corsair Force F120 SSD 120GB&lt;/a&gt;” es necesario dejar libre un espacio de unos 20GB (“Unallocated”) con objeto de conseguir que el decremento del 60% ó 70%&amp;#160; pase a ser de sólo un 30% ó un 40% aproximadamente. Esto mismo no ocurre con el disco “&lt;a href="http://www.pccomponentes.com/g_skill_phoenix_pro_ssd_120gb.html"&gt;G.Skill Phoenix Pro SSD 120GB&lt;/a&gt;”, donde directamente&amp;#160; conseguiras este resultado sin tener que peder estos 20GB. &lt;/li&gt;      &lt;li&gt;! Asi que hasta que el Bitlocker no esté preparado para este tipo de discos, tendrás que soportar esta perdida en el rendimiento de nuevo disco duro, &lt;strike&gt;o, simplemente “No lo configures” &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtYjwZbnI/AAAAAAAAAZc/bQFLYlUso50/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/strike&gt;. &lt;/li&gt;   &lt;/ul&gt; &lt;/ol&gt;  &lt;p&gt;Aqui os dejo algunas pruebas de las medidas que tomé: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.pccomponentes.com/g_skill_phoenix_pro_ssd_120gb.html"&gt;G.Skill Phoenix Pro SSD 120GB&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;table border="0" cellspacing="0" cellpadding="0" width="584"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="194"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00" color="#ff0000"&gt;&lt;u&gt;Con BitLocker&lt;/u&gt;&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="194"&gt;         &lt;p&gt;Sin BitLocker&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="194"&gt;         &lt;p&gt;Sin BitLocker + aHCI&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="195"&gt;         &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TWLtZRzkEAI/AAAAAAAAAZg/HMwMesnvf7I/s1600-h/Bechmark-Con%20Bitlocker%5B8%5D.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="Bechmark-Con Bitlocker" border="0" alt="Bechmark-Con Bitlocker" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TWLtZ9DVtbI/AAAAAAAAAZk/z530oeZ4ylE/Bechmark-Con%20Bitlocker_thumb%5B3%5D.png?imgmax=800" width="231" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="195"&gt;         &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TWLtaudaWsI/AAAAAAAAAZo/jOYZN_n1qyc/s1600-h/Bechmark-SinBitlocker%5B11%5D.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="Bechmark-SinBitlocker" border="0" alt="Bechmark-SinBitlocker" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtbDZSErI/AAAAAAAAAZs/aToANi0SB3A/Bechmark-SinBitlocker_thumb%5B4%5D.png?imgmax=800" width="231" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="195"&gt;         &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtb82nATI/AAAAAAAAAZw/KnZEjyGD5mI/s1600-h/Benchmark%20-%20aHCI%5B11%5D.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="Benchmark - aHCI" border="0" alt="Benchmark - aHCI" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtcURdcUI/AAAAAAAAAZ0/OIrzKPj4KhY/Benchmark%20-%20aHCI_thumb%5B4%5D.png?imgmax=800" width="231" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;ul&gt;   &lt;li&gt;A continuación el “&lt;a href="http://www.pccomponentes.com/corsair_force_f120_ssd_120gb.html"&gt;Corsair Force F120 SSD 120GB&lt;/a&gt;” &lt;/li&gt; &lt;/ul&gt;  &lt;table border="0" cellspacing="0" cellpadding="0" width="587"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="194"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00" color="#ff0000"&gt;Con Bitlocker&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="194"&gt;         &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00" color="#ff0000"&gt;Con BitLocker + 20GB “Unallocate”&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="197"&gt;         &lt;p&gt;Sin BitLocker&amp;#160; + aHCI +20GB “Unallocated”&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="195"&gt;         &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtdFXjYAI/AAAAAAAAAZ4/WXYxoxBgbz8/s1600-h/clip_image002%5B10%5D.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="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TWLtdSZ8VXI/AAAAAAAAAZ8/NyynKgwS-9s/clip_image002_thumb%5B3%5D.jpg?imgmax=800" width="230" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="195"&gt;         &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtePvukWI/AAAAAAAAAaA/EeNbPfkFWig/s1600-h/clip_image001%5B7%5D.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="clip_image001" border="0" alt="clip_image001" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtefZVmCI/AAAAAAAAAaE/THLVFygze2Q/clip_image001_thumb%5B2%5D.jpg?imgmax=800" width="231" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="197"&gt;         &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TWLtgKoKRfI/AAAAAAAAAaI/cfK4ROLc04k/s1600-h/clip_image004%5B4%5D.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="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtgifBQzI/AAAAAAAAAaM/LRQjC4pkb9c/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="232" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;En estos casos hay muchos temas pendiente que ver y como tampoco soy un esperto, dejo algunos enlaces donde poder ver porque decartarse por el &lt;a href="http://www.pccomponentes.com/g_skill_phoenix_pro_ssd_120gb.html"&gt;G.Skill Phoenix Pro SSD 120GB&lt;/a&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Doble &lt;a href="http://profesionales.recol.es/ingeniero/attc/attc021.htm"&gt;MTBF&lt;/a&gt; (Tiempo medio de vida entre fallos o fiabilidad/calidad), que puedes ver &lt;a href="http://profesionales.recol.es/ingeniero/attc/attc021.htm"&gt;aquí&lt;/a&gt; (G.Skill) y &lt;a href="http://www.corsair.com/cssd-f120gb2-brkt.html"&gt;aqui&lt;/a&gt; (Corsair).&lt;/li&gt;    &lt;li&gt;Trim nativo soportado en windows 7 mientras que en Corsar es simplemente soportado.&lt;/li&gt;    &lt;li&gt;50.000 IOPS (Input Output Operations per seconds) frente a los 50.000 ó 15.000 del Corsair. Este dato es curioso, depende la página en donde mires encontrarás valores distintos.&amp;#160; Eso sí, los de “G. Skill” no cambian.&amp;#160; Aqui os dejo una web con los datos de ambos discos: &lt;a href="http://www.legitreviews.com/article/1453/1/"&gt;G.Skill&lt;/a&gt; y &lt;a href="http://www.legitreviews.com/article/1338/1/"&gt;Corsair&lt;/a&gt;.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: ¡ Lo que si está claro, es que &lt;strong&gt;sin&lt;/strong&gt; el Bitlocker, (y sin tener en cuenta el MTBF) ambos discos consiguen practicamente el mismo rendimiento &lt;/p&gt;  &lt;p&gt;&lt;em&gt;¡Ahora si que puedo subir a la nube!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Saludos&amp;#160; y mucha suerte para el que se anime, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TWLthMCf0UI/AAAAAAAAAaQ/cfcO4iQ1TJo/wlEmoticon-winkingsmile%5B2%5D.png?imgmax=800" /&gt;    &lt;br /&gt;Juanlu &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-9083169553857079470?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/9083169553857079470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=9083169553857079470&amp;isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/9083169553857079470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/9083169553857079470'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2011/02/instala-un-disco-de-estado-solido-ssd.html' title='Instala un disco de estado sólido (SSD) para que tu PC vuele'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TWLtYjwZbnI/AAAAAAAAAZc/bQFLYlUso50/s72-c/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-3963734568914720017</id><published>2010-12-01T22:23:00.001+01:00</published><updated>2010-12-01T22:23:39.472+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>+…+ Pruebas con lo nuevo de Windows Azure y además, un bug en el “Reboot”</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPa8n1Z9qvI/AAAAAAAAAYY/g3YSFm-k0xA/s1600-h/Windows%20Azure%20Big%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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 Azure Big" border="0" alt="Windows Azure Big" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPa8optggsI/AAAAAAAAAYc/6rZN-9Aji_M/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Hola a todos, &lt;/p&gt;  &lt;p&gt;Algunas novedades más ahora que estoy con ganas, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPa8peTX2VI/AAAAAAAAAYg/UdnhghB4x3s/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;, ¡Vamos, como un niño pequeño con su juguete nuevo de Reyes!, jejeje…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1) Instancia Small&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;Ahora que podemos acceder directamente a la maquina a través de Terminal Server, he aquí la composición de discos de una instancia cualquiera “Web Role”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPa8qb2kPWI/AAAAAAAAAYk/2ovXFrg8NqQ/s1600-h/image%5B10%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TPa8rmjg2lI/AAAAAAAAAYo/FlWoX7U04zM/image_thumb%5B6%5D.png?imgmax=800" width="518" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2) Instancia Extra Small&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;En cuanto a esta instancia, nada, de momento nos va a tocar esperar, al menos hasta formar parte del programa “Beta”:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;14:19:40 - Preparing...      &lt;br /&gt;14:19:41 - Connecting...       &lt;br /&gt;14:19:53 - Uploading...       &lt;br /&gt;14:20:56 - Warning: The server encountered an unknown failure: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.       &lt;br /&gt;14:21:11 - Warning: The server encountered an unknown failure: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.       &lt;br /&gt;14:28:52 - Creating...       &lt;br /&gt;14:29:19 - HTTP Status Code: 400/nError Message: A parameter was incorrect. Details: The subscription is not authorized for this feature./nOperation Id: xxxxxxxxxxxxxxxx       &lt;br /&gt;14:29:19 – &amp;lt;HostName&amp;gt;       &lt;br /&gt;14:29:20 - There was no endpoint listening at &lt;/em&gt;&lt;a href="https://management.core.windows.net/&amp;lt;SubscriptionID&amp;gt;/services/hostedservices/&amp;lt;ProjectName&amp;gt;/deploymentslots/Staging"&gt;&lt;em&gt;/services/hostedservices//deploymentslots/Staging&amp;quot;&amp;gt;/services/hostedservices//deploymentslots/Staging&amp;quot;&amp;gt;https://management.core.windows.net/&amp;lt;SubscriptionID&amp;gt;/services/hostedservices/&amp;lt;ProjectName&amp;gt;/deploymentslots/Staging&lt;/em&gt;&lt;/a&gt;&lt;em&gt; that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.      &lt;br /&gt;14:29:20 - Deployment failed&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3) Nuevo portal SQL Azure (“Houston” ) y acceso desde el portal de Windows Azure y acceso directo desde&lt;/strong&gt; &lt;a href="https://manage-am2.sql.azure.com/" target="_blank"&gt;aquí&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TPa8sjWNVVI/AAAAAAAAAYs/g_WEIJbAXpg/s1600-h/image%5B18%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh4.ggpht.com/_BVsPnNgOu_E/TPa8uFWZlLI/AAAAAAAAAYw/VStqeHmuu10/image_thumb%5B10%5D.png?imgmax=800" width="430" height="205" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Introducción de las credenciales&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPa8vBMF5mI/AAAAAAAAAY0/1hQr_CdpnA0/s1600-h/image%5B21%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TPa8v8ejF-I/AAAAAAAAAY4/W801iYtqWQo/image_thumb%5B11%5D.png?imgmax=800" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Y aquí os dejo un recorrido de lo principal:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPa8xBrkiII/AAAAAAAAAY8/r-6rzEVeIvk/s1600-h/image%5B25%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TPa8yPpOhCI/AAAAAAAAAZA/c0fN1IBbWt0/image_thumb%5B13%5D.png?imgmax=800" width="434" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPa8zSsIz5I/AAAAAAAAAZE/Xt59oJe18y4/s1600-h/image%5B29%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh3.ggpht.com/_BVsPnNgOu_E/TPa80UOTJKI/AAAAAAAAAZI/PJKmrknnXVA/image_thumb%5B15%5D.png?imgmax=800" width="435" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPa81UBAv2I/AAAAAAAAAZM/a9oLNa8hO7o/s1600-h/image%5B33%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh6.ggpht.com/_BVsPnNgOu_E/TPa82VhqZBI/AAAAAAAAAZQ/lA8GtYq4-Dc/image_thumb%5B17%5D.png?imgmax=800" width="436" height="267" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;Ah por cierto, el acceso a la máquina/instancia no es posible via UNC, es decir; &lt;a href="file://\\&amp;lt;NombreMaquina&amp;gt;\c$"&gt;\c$&amp;quot;&amp;gt;\c$&amp;quot;&amp;gt;\\&amp;lt;NombreMaquina&amp;gt;\c$&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;u&gt;BUG&lt;/u&gt;&lt;/font&gt;&lt;/strong&gt;:&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Si haces un reinicio (boton “Reboot”) de una instancia (tanto en “staging” en “production”), desde el portal aparece el “Stoping (Rebooting)…” y hay se queda, es decir, no termina nunca. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Solución&lt;/strong&gt;: “Stop” y “Start”, aunque eso sí, después de haber intentado el “Reboot” parece que tampoco funciona,&amp;#160; hay que cerrar el Internet Explorer e intentarlo de nuevo, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPa8peTX2VI/AAAAAAAAAYg/UdnhghB4x3s/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;. &lt;/li&gt;    &lt;li&gt;¡Habrá que reportar a Micrsoft!. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Saludos    &lt;br /&gt;Juanlu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-3963734568914720017?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/3963734568914720017/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=3963734568914720017&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3963734568914720017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3963734568914720017'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/12/pruebas-con-lo-nuevo-de-windows-azure-y.html' title='+…+ Pruebas con lo nuevo de Windows Azure y además, un bug en el “Reboot”'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BVsPnNgOu_E/TPa8optggsI/AAAAAAAAAYc/6rZN-9Aji_M/s72-c/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7431821804923219273</id><published>2010-11-30T13:23:00.001+01:00</published><updated>2010-11-30T13:23:37.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Probando Windows Azure SDK 1.3 y el nuevo portal !!!</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTrz2wX7rI/AAAAAAAAAWk/avFONQULImc/s1600-h/Windows%20Azure%20Big%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows Azure Big" border="0" alt="Windows Azure Big" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTr159VLxI/AAAAAAAAAWo/PECIaGg6WTA/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aqui estoy de nuevo, en esta ocasión comenzando con algunas de la mejoras del SDK 1.3.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Antes de nada comentar que desde esta mañana ya está disponible el nuevo portaaaaaaal de Azure “&lt;u&gt;a excepción de AppFabric&lt;/u&gt;”, por que aún tendremos que esperar un poco más, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Triste" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTr50xTpaI/AAAAAAAAAWs/KrlYnPY9uJU/wlEmoticon-sadsmile%5B2%5D.png?imgmax=800" /&gt;.&amp;#160; Os dejo algunos pantallazos:&lt;/li&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTr-tMNsfI/AAAAAAAAAWw/9xB6Dh2cPzw/s1600-h/image%5B63%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsAxN0bUI/AAAAAAAAAW0/pLnT9TP8VZc/image_thumb%5B30%5D.png?imgmax=800" width="475" height="315" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsGCA4KUI/AAAAAAAAAW4/2luqRE7xHJY/s1600-h/image%5B64%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsIr4hoBI/AAAAAAAAAW8/i2tfs0ZW_uU/image_thumb%5B31%5D.png?imgmax=800" width="476" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;li&gt;En cuanto a nuestros proyectos existentes, lo primero que vamos a tener que hacer es cambiar la referencia a la siguiente dll, para que sea la 1.1.0.0 en lugar de la 1.0.0.0, es decir, ahora hay que&amp;#160; utilizar “&lt;em&gt;&lt;strong&gt;Microsoft.WindowsAzure.StorageClient v1.1.0.0&lt;/strong&gt;&lt;/em&gt;” y la puedes encontrar en la GAC o&amp;#160; en el directorio “&lt;em&gt;C:\Program Files\Windows Azure SDK\v1.3\bin&lt;/em&gt;” .&lt;/li&gt;    &lt;li&gt;Por otro lado, tenemos nueva seleccion en los tipos de proyectoss:&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsOUVP4WI/AAAAAAAAAXA/PMhpM8GUfSQ/s1600-h/image%5B37%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTsQAguJUI/AAAAAAAAAXE/vrZLYHn0Xug/image_thumb%5B18%5D.png?imgmax=800" width="413" height="271" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Acceso directo al portal de Azure:&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTsQ1xjndI/AAAAAAAAAXI/JM2zxy5HJIw/s1600-h/image%5B27%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsSqKSwsI/AAAAAAAAAXM/n31q32zh1j0/image_thumb%5B12%5D.png?imgmax=800" width="246" height="327" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Configurando la conexión con el Remote Desktop:&lt;/li&gt;    &lt;li&gt;Configuranco el acceso al Remote Desktop. He aquí agunos rastros de los hechos accediendo desde el menú contextual de la opción “Publish” de Visual Studio 2010:&lt;/li&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsTQwOQPI/AAAAAAAAAXQ/Mu2StbvqJZs/s1600-h/image%5B32%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsVMOoifI/AAAAAAAAAXU/0UNlNJ2Ergs/image_thumb%5B13%5D.png?imgmax=800" width="321" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Después de configurar la conexión remota el fichero de configuracion “&lt;em&gt;ServiceConfiguration.cscfg&lt;/em&gt;” tiene el siguiente aspecto visual:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsVu55m1I/AAAAAAAAAXY/PfGRr9pVzRo/s1600-h/image%5B33%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsXsoN2vI/AAAAAAAAAXc/Lqoy6Kz__Aw/image_thumb%5B14%5D.png?imgmax=800" width="431" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Una vez hecho estos ajustes y desplegado y desplegado:&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Para la utilización y configuración de certificados os remito a un Post que ha escrito nuestra compañera “Azureña” &lt;strong&gt;Gisela&lt;/strong&gt; recientemente: “&lt;a href="http://www.returngis.net/2010/11/administracion-de-certificados-digitales-en-windows-azure/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+returngis+%28Return%28GiS%29%3B%29" target="_blank"&gt;Administración de Certificados digitales en Windows Azure&lt;/a&gt;”.&lt;/p&gt;    &lt;p&gt;1) Desde el Panel de “Host Services” y sobre el Icono del “Role” tenemos estas opciones:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TPTsYc2ssbI/AAAAAAAAAXg/xhtPGby5kVs/s1600-h/image%5B67%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTsd7w0V8I/AAAAAAAAAXk/1yR41TSt8TU/image_thumb%5B32%5D.png?imgmax=800" width="170" height="89" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;2) Clicamos es “Configure” e introducimos las credenciales:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsfH2oZdI/AAAAAAAAAXo/8i4-6xpvmsM/s1600-h/image%5B58%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTsfxN3JEI/AAAAAAAAAXs/lZADj4xMkno/image_thumb%5B29%5D.png?imgmax=800" width="244" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;3) Seleccionamos la instancia a la que nos queremos conectar después de unos momentos de actualización.&lt;/p&gt;    &lt;p&gt;4) Utilizamos el Icono “Connect”, ahora ya activo, y como digo una vez seleccionada la instancia.&lt;/p&gt;    &lt;p&gt;5) introducimos el dominio\usuario y el password, y, …….&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Para obtener el nombre del domino, utiliazr el NombreProyecto, es deicr, el nombre de la instancia sin el sufijo “.WebUx_IN_0”, a partir de la primera vez, ya tendremos el nombre real de la máquina.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsgVHfQjI/AAAAAAAAAXw/2DYg2bsWZ1I/s1600-h/image%5B82%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTskVU2HII/AAAAAAAAAX0/BTqfV73reaw/image_thumb%5B39%5D.png?imgmax=800" width="172" height="105" /&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTslO2bSwI/AAAAAAAAAX8/4oy1wkyNRlM/s1600-h/image%5B83%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTsn9j7dAI/AAAAAAAAAYA/vbQxawNbdJU/image_thumb%5B40%5D.png?imgmax=800" width="140" height="146" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPTspncYHpI/AAAAAAAAAYE/nb7hCKpG2Nc/s1600-h/image%5B84%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTssruGu7I/AAAAAAAAAYI/TijU3T_quEA/image_thumb%5B41%5D.png?imgmax=800" width="171" height="65" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPTstH3vo6I/AAAAAAAAAYM/BmagbgGRfrc/s1600-h/image%5B86%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsxnPatSI/AAAAAAAAAYQ/FE9SKRE05Qs/image_thumb%5B43%5D.png?imgmax=800" width="541" height="363" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;¡Zaaaaaaaaaaaaaaaaaaas!&amp;#160; Impresionante, dentro de la máquina/instancia, ¡la verdad es que geeeeniiial! &lt;/p&gt;    &lt;p&gt;¡Ahora le diría a mi colega Bruno: “Esto es más divertido que la Kinect” &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPTsyL1cukI/AAAAAAAAAYU/lrZLA7CPdFs/wlEmoticon-smilewithtongueout%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;¡Una vez que tenga el acceso!, que como podéis ver en la primera imagen de este post tenemos que esperar una vez realizada la unión al programa beta, os iré comentando sobre algunas otras pruebas y novedades:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Extra Small VMs&lt;/li&gt;      &lt;li&gt;Windows Azure Connect&lt;/li&gt;      &lt;li&gt;VM Role&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;Saludos nubedosos   &lt;br /&gt;Juanlu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7431821804923219273?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7431821804923219273/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7431821804923219273&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7431821804923219273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7431821804923219273'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/11/probando-windows-azure-sdk-13-y-el.html' title='Probando Windows Azure SDK 1.3 y el nuevo portal !!!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BVsPnNgOu_E/TPTr159VLxI/AAAAAAAAAWo/PECIaGg6WTA/s72-c/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7504858279688789012</id><published>2010-11-29T21:21:00.001+01:00</published><updated>2010-11-29T21:21:34.135+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Windows Azure SDK 1.3 y Azure Tools para Visual Studio</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPQLH-cnGwI/AAAAAAAAAV8/Udl5UEdQHLs/s1600-h/Windows%20Azure%20Big%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows Azure Big" border="0" alt="Windows Azure Big" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TPQLIw8KBFI/AAAAAAAAAWA/euJKGXgL9pA/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy buena, y muy buenas porque aunque en un rato tenemos el partido “Barca – Madrid” tambien tenemos ya disponibles para su descarga el SDK 1.3 de Windows azure, ahora además con unas cuantas Tools para Visual estudio.&amp;#160; Además claro esta:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Virtual Machine (VM) Role (Beta)&lt;/li&gt;    &lt;li&gt;Remote Desktop Access&lt;/li&gt;    &lt;li&gt;Full IIS Support in a Web role&lt;/li&gt;    &lt;li&gt;Instancia “Extra Small” ($0,05/hora por una máquina de 1 GHz de CPU, 768 MB RAM y 20 GB de almacenamiento local).&lt;/li&gt;    &lt;li&gt;Virtual Network (CTP)&lt;/li&gt;    &lt;li&gt;Bastantes HotFix, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TPQLJ71p1QI/AAAAAAAAAWE/V7QtgPklwfY/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt; ¡Así no tenemos que estar recapitulajndo Fixes por todos lados!&lt;/li&gt;    &lt;li&gt;Y, muchas cosas más…&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;He &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018#Overview"&gt;aquí&lt;/a&gt; el enlace para su descarga.&lt;/p&gt;  &lt;p&gt;El “pequeño”&amp;#160; inconveniente es que parece que las Tools no soportan Visual Studio 2008, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Triste" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TPQLKqMJIVI/AAAAAAAAAWI/anrIe9xRPbI/wlEmoticon-sadsmile%5B2%5D.png?imgmax=800" /&gt;, pero por lo demás, sin problemas.&lt;/p&gt;  &lt;p&gt;Cerramos el Development Fabric y el Visual Studio, next, next, ….. y Listo.&amp;#160; En principio, sin problemas. He aquí algunos pantallazos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPQLMXMxfZI/AAAAAAAAAWM/bBVHhCoBpKs/s1600-h/image%5B9%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TPQLNGulfsI/AAAAAAAAAWQ/Wr8SwE9VYb8/image_thumb%5B5%5D.png?imgmax=800" width="384" height="293" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TPQLN7aMnoI/AAAAAAAAAWU/cuuGTxhLHDY/s1600-h/image%5B10%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPQLOyWPweI/AAAAAAAAAWY/xQbhEzk_xB0/image_thumb%5B6%5D.png?imgmax=800" width="370" height="142" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TPQLQx5zCeI/AAAAAAAAAWc/N7xNBSRipDM/s1600-h/image%5B14%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TPQLSQ6BWeI/AAAAAAAAAWg/ros_Fu-6t3s/image_thumb%5B8%5D.png?imgmax=800" width="422" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Ahora sólo queda probrar y conseguir que todo funcione y este listo en el portal de Azure para soportar todas estas novedades. Esperemos que sean en unos días.&lt;/p&gt;  &lt;p&gt;Saludos y a disfrutar&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Saludos y a disfrutar    &lt;br /&gt;Juanlu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7504858279688789012?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7504858279688789012/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7504858279688789012&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7504858279688789012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7504858279688789012'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/11/windows-azure-sdk-13-y-azure-tools-para.html' title='Windows Azure SDK 1.3 y Azure Tools para Visual Studio'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TPQLIw8KBFI/AAAAAAAAAWA/euJKGXgL9pA/s72-c/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-2640897544928348119</id><published>2010-11-04T23:22:00.001+01:00</published><updated>2010-11-04T23:22:16.155+01:00</updated><title type='text'>AppFabricLabs: “La primera en la frente”</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TNMyDsWa4uI/AAAAAAAAAVs/AtBQczikKqE/s1600-h/appfabric-logo%5B8%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="appfabric-logo" border="0" alt="appfabric-logo" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TNMyEXPnQfI/AAAAAAAAAVw/zSLEDikn5BE/appfabric-logo_thumb%5B6%5D.jpg?imgmax=800" width="240" height="47" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Me encuentro haciendo mi primer ejemplo (“EchoService” del SDK) con AppFabric y, que mala suerte que ya encuentro el primer error, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-sadsmile" alt="Triste" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TNMyE62829I/AAAAAAAAAV0/xRizy_lMESo/wlEmoticon-sadsmile%5B2%5D.png?imgmax=800" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Error 1&lt;/u&gt;&lt;/strong&gt;: hostname “&lt;em&gt;&lt;strong&gt;[YOUR_NAMESPACE].servicebus.appfabriclabs.com.servicebus.windows.net”&lt;/strong&gt;&lt;/em&gt; can't support more than 1 level subdomain.&lt;/p&gt;  &lt;p&gt;Sutituyo esta sentencia;&lt;/p&gt;  &lt;p&gt;   &lt;div&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Uri address = ServiceBusEnvironment.CreateServiceUri(&lt;span style="color: #006080"&gt;&amp;quot;sb&amp;quot;&lt;/span&gt;, serviceNamespaceDomain, &lt;span style="color: #006080"&gt;&amp;quot;EchoService&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;por esta otra;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Uri address = new Uri(@&lt;span style="color: #006080"&gt;&amp;quot;sb://acsservice.servicebus.appfabriclabs.com/EchoService/&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;y nada, tampoco funciona, ahora obtengo este otro error:&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&lt;strong&gt;&lt;u&gt;Error 2&lt;/u&gt;&lt;/strong&gt;: hostname “&lt;strong&gt;&lt;em&gt;[YOUR_NAMESPACE].servicebus.appfabriclabs.com.”&lt;/em&gt;&lt;/strong&gt; can't support more than 1 level subdomain.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;&lt;br /&gt;    &lt;br /&gt;Después de hacer varios intentos, pensando que estaba haciendo algo mal, encuento este único enlace en Google:&amp;#160; &lt;a title="http://www.go4answers.com/Example/problem-regarding-appfabric-lab-105032.aspx" href="http://www.go4answers.com/Example/problem-regarding-appfabric-lab-105032.aspx"&gt;http://www.go4answers.com/Example/problem-regarding-appfabric-lab-105032.aspx&lt;/a&gt;, donde parece que la única solución es trabajar con “servicebus.windows.net” y no con “servicebus.appfabriclabs.com”.&amp;#160; En este enlace, además de ver un error similar se muestran los tiempos de respuesta entre las regiones, interesante, interesante.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div&gt;En fin, parece que finalmente tendremos que utilizar “AppFabricLabs” sólo para hacer uso de “&lt;strong&gt;Caching&lt;/strong&gt;”, bueno, esperemos que funcione, ya os contaré, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TNMyFdl5yKI/AAAAAAAAAV4/BCfrBdAttXA/wlEmoticon-openmouthedsmile%5B2%5D.png?imgmax=800" /&gt;.&lt;/div&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos&lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-2640897544928348119?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/2640897544928348119/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=2640897544928348119&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2640897544928348119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2640897544928348119'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/11/appfabriclabs-la-primera-en-la-frente.html' title='AppFabricLabs: “La primera en la frente”'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BVsPnNgOu_E/TNMyEXPnQfI/AAAAAAAAAVw/zSLEDikn5BE/s72-c/appfabric-logo_thumb%5B6%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-4820257845575705009</id><published>2010-10-26T09:07:00.001+02:00</published><updated>2010-10-26T09:07:26.477+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Depuración'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Setup'/><title type='text'>Azure: Desplegando y Depurando allí arriba en la nube</title><content type='html'>&lt;div id="codeSnippetWrapper"&gt;   &lt;div id="codeSnippetWrapper"&gt;     &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;!--CRLF--&gt;&lt;/div&gt;   &lt;/div&gt; &lt;/div&gt; &lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TMZ99GonG2I/AAAAAAAAAUk/WcBS-R1Nhs0/s1600-h/image11.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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="image" border="0" alt="image" align="left" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TMZ9-EMJMbI/AAAAAAAAAUo/wb9JJE6sTcs/image_thumb7.png?imgmax=800" width="166" height="185" /&gt;&lt;/a&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Después de ya un tiempo me he decidido a llevar a cabo mi primer deploy en la nube, no obstante una de las cosas que más me preocupa es el control de lo que realmente está ocurriendo. Para conseguir ser dueño de tal poder es muy importante tener en cuenta desde el principio el tratamiento de cierta información con objeto de poder consultarla para lograr finalmente coseguir la ubicación exacta de lo que ocurre, es decir, si ocurre un problema, localizarlo y solucionarlo.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Esto tiene una implicación muy importante, y es, que finalmente, se va a pensar en las trazas y en el control de errores desde el primer momento del proyecto. ¡Al fin un “hito” que no va a poder pasarse por alto, va a resultar que poco a poco vamos a ir haciendo las cosas bien!&amp;#160; ¿Porque no pensamos tan detenidamente estas cosas en un sistema On-Premise? ¡Claro, en una última instancia, nos enfrentamos cara a cara con el servidor que esta en una sala más a la derecha y listo, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TMZ9-ntcKbI/AAAAAAAAAUs/wMSUhpBnFzk/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;! Bueno, pues ahora nos tocará codificar algunas líneas más de código…. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Por el momento veamos el deploy y todo lo que surge a su alrededor:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Desde Visual Studio:&lt;/strong&gt;       &lt;br /&gt;Click derecho sobre el proyecto de “Cloud Services” y “Publish…”. A continuación tendremos que seleccionar un certificado o crear uno nuevo directamnte desde el Wizard. Para crear uno basatará con incluir el siguiente comando en la cosola de “Windows Azure SDK v1.2”: &lt;/li&gt; &lt;/ul&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;makecert -r -pe -a sha1 -n &lt;span style="color: #006080"&gt;&amp;quot;CN=Windows Azure Authentication Certificate&amp;quot;&lt;/span&gt; -ss My -len 2048 -sp &lt;span style="color: #006080"&gt;&amp;quot;Microsoft Enhanced RSA and AES Cryptographic Provider&amp;quot;&lt;/span&gt; –sy 24 elGuerreAzure.cer.&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TMZ9_SwjO5I/AAAAAAAAAUw/67NJ4snL_FY/s1600-h/image121%5B1%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh4.ggpht.com/_BVsPnNgOu_E/TMZ-AaXY6BI/AAAAAAAAAU0/Yoyo3PLcg7A/image_thumb5.png?imgmax=800" width="298" height="278" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;Comienza el deploy, ¡ahora, lo que menos me gusta!, a esperar unos 20 minutos, aunque eso sí, podemos seguir trabajando sin ningún problema. &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TMZ-BA2Qn2I/AAAAAAAAAU4/jWTwFGdu0Jw/s1600-h/MyFistDeploy3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MyFistDeploy" border="0" alt="MyFistDeploy" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TMZ-B-JzuyI/AAAAAAAAAU8/M0PcQtIzpks/MyFistDeploy_thumb1.png?imgmax=800" width="379" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Si por alguna razón (&lt;strike&gt;el Visual Studio “peta”&lt;/strike&gt;) hay que volver a lanzar de nuevo el deploy. En tal caso así como cuando queremos relanzar una publicación veremos este mensaje; (“Delete and Continue” y seguimos…) y a volver a esperar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TMZ-Cnq57zI/AAAAAAAAAVA/DQX-fjyUxF0/s1600-h/image4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TMZ-DZkRR6I/AAAAAAAAAVE/AhaA668Bj6M/image_thumb2.png?imgmax=800" width="403" height="187" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Desde la Web “wwww.azure.com”:&lt;/strong&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Seleccionamos los paquetes de instalación; “.cspkg” y “.cscfg”:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TMZ-EKT9WHI/AAAAAAAAAVI/Sm1WZ4clNQk/s1600-h/image5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh3.ggpht.com/_BVsPnNgOu_E/TMZ-FlkqiuI/AAAAAAAAAVM/Tsr3SGIPH5M/image_thumb21.png?imgmax=800" width="415" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TMZ-GaqdHeI/AAAAAAAAAVQ/pw2pqoxH8D0/s1600-h/image18.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TMZ-Hx0T_KI/AAAAAAAAAVU/DtnDWYfO6io/image_thumb10.png?imgmax=800" width="416" height="375" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;A esperar los 20min de cortesía y listo, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Risa" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TMZ9-ntcKbI/AAAAAAAAAUs/wMSUhpBnFzk/wlEmoticon-openmouthedsmile2.png?imgmax=800" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Un tema muy importante a tener en cuenta es realizar el deploy con el &lt;strong&gt;IntelliTrace activado&lt;/strong&gt;&amp;#160; como mostraba en una imagen anterior.&amp;#160; Esto va a permitir recuperar las trazas y poder localizar cualquier error, y sobre todo, los ocurridos durante el despliegue.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para ello, acceder al “Server Explorer” desde Visual Studio, click derecho&amp;#160; y “View IntelliTrace Logs”:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TMZ-IZLHEmI/AAAAAAAAAVY/7YshZo4JiSs/s1600-h/image121.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh3.ggpht.com/_BVsPnNgOu_E/TMZ-Jgmym9I/AAAAAAAAAVc/zPpEx6hUkPs/image12_thumb.png?imgmax=800" width="294" height="95" /&gt;&lt;/a&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TMZ-KIYsOpI/AAAAAAAAAVg/UEMjpZODU1Q/s1600-h/image8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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://lh5.ggpht.com/_BVsPnNgOu_E/TMZ-KlGUptI/AAAAAAAAAVk/Oy8__x7Uxxk/image_thumb3.png?imgmax=800" width="244" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En ese momento comienza la descarga de las trazas desde el servidor, seguidamente podremos acceder al IntelliTrace y localizar el posible problema.&amp;#160; Una detalle que me he encontrado es que las Dlls de MVC para ASP.Net no se encuentran instaladas en los Web Roles y por lo tanto hay que hacer un “Copy Local = True” de la misma para se incluya en el deploy y así se copie al/los servidor/es. Igualmente para el resto de Dlls que tampoco se encuentren instaladas. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TMZ-LFZdsEI/AAAAAAAAAVo/Ba90f7fATfU/wlEmoticon-winkingsmile2.png?imgmax=800" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#0000ff" size="4"&gt;&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font color="#333333"&gt;Algunos errores durante el despliegue&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;em&gt;System.Net.WebException: Unable to connecto to the remote server&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;em&gt;System.ObjectDisposedException: Cannot access a disposed object.&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;em&gt;“System.Net.Sockets.SocketException:&amp;#160; An attempt was made to access a socket in a way forbidden by its access permissions.”&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Estos aprecen si el deploy en la nube se realiza con “UseDevelopmentStorage=true”,(de igual forma si “UseDevelopmentStorage=false”). La solución a estos, basatará con indicar los valores correctos tales como; “DefaultEndpointsProtocol=https;AccountName=[Your Account Name];AccountKey=[Your Account Key]. Es facil pero puede ocurrir que se nos olvide o que en algún caso la cadena no esté bien formada.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;&lt;em&gt;“No valid combination of account information found.”&lt;/em&gt; &lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;Este problema puede implicar un pequeño ajuste en nuestro código, aunque no siempre tiene que ser necesario, el porqué, aún no lo tengo muy claro. En otras casos también es posible que aparezca si la cadena de conexión a la nube no está correctamente formada&lt;/font&gt;:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;strong&gt;Código original:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt; configSetter(RoleEnvironment.GetConfigurationSettingValue(configName));&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt; });&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Nuevo código a sustituir por el anterior:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;br /&gt;  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) =&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; connectionString; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (RoleEnvironment.IsAvailable) &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum5"&gt;   5:&lt;/span&gt;     { &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum6"&gt;   6:&lt;/span&gt;         connectionString = RoleEnvironment.GetConfigurationSettingValue(configName);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum7"&gt;   7:&lt;/span&gt;     } &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum8"&gt;   8:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum9"&gt;   9:&lt;/span&gt;     { &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum10"&gt;  10:&lt;/span&gt;         connectionString = ConfigurationManager.AppSettings[configName]; &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum11"&gt;  11:&lt;/span&gt;     } &lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum12"&gt;  12:&lt;/span&gt;     configSetter(connectionString);&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum13"&gt;  13:&lt;/span&gt; });&lt;/pre&gt;&lt;br /&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Windows Azure - Resolving &amp;quot;The Path is too long after being fully qualified&amp;quot;.&lt;/strong&gt;&amp;#160; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Aparece en muchas ocasiones al intentar compilar o publicar una aplicación. Puedemos solucionarlo fácilmente siguiendo los siguientes pasos.&amp;#160; Más detalle &lt;a href="http://blogs.msdn.com/b/jnak/archive/2010/01/14/windows-azure-path-too-long.aspx"&gt;aquí&lt;/a&gt;:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;Desde la consola; “Windows Azure SDK v1.2”, ejecutamos:&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;ol&gt;&lt;br /&gt;    &lt;li&gt;csrun /devfabric:shutdow&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;    &lt;li&gt;csrun /devfabric:clean&lt;/li&gt;&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Aseguramos que el icono de Azure no se encuentra en la barra de notificaciones.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Finalmente creamos una nueva variable de entorno “_CSRUN_STATE_DIRECTORY“ y le asignamos el path que quieras “ej.: &amp;quot;C:\AZURE_RUN”&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;En un siguiente post veremos en detalle el Traceo y la monitorización, &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TMZ-LFZdsEI/AAAAAAAAAVo/Ba90f7fATfU/wlEmoticon-winkingsmile2.png?imgmax=800" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;saludos &lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4820257845575705009?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4820257845575705009/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4820257845575705009&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4820257845575705009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4820257845575705009'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/10/azure-desplegando-y-depurando-alli.html' title='Azure: Desplegando y Depurando allí arriba en la nube'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BVsPnNgOu_E/TMZ9-EMJMbI/AAAAAAAAAUo/wb9JJE6sTcs/s72-c/image_thumb7.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-3134908574980612650</id><published>2010-10-20T23:04:00.001+02:00</published><updated>2010-10-20T23:04:53.236+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Mas vídeos sobre Azure</title><content type='html'>&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TL9Zcb5bMdI/AAAAAAAAAUc/nGOkv2BQ5gk/s1600-h/Windows%20Azure%20Big%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows Azure Big" border="0" alt="Windows Azure Big" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TL9Zc-0Yf4I/AAAAAAAAAUg/ObFQyoQwC1k/Windows%20Azure%20Big_thumb%5B2%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;  &lt;p&gt;&lt;a title="http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=166" href="http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=166"&gt;Muy&lt;/a&gt; buenas, &lt;/p&gt;  &lt;p&gt;Aquí os dejo un enlace a una nueva colección de vídeos sobre azure:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=166" href="http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=166"&gt;http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=166&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Saludos   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-3134908574980612650?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/3134908574980612650/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=3134908574980612650&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3134908574980612650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3134908574980612650'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/10/mas-videos-sobre-azure.html' title='Mas vídeos sobre Azure'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_BVsPnNgOu_E/TL9Zc-0Yf4I/AAAAAAAAAUg/ObFQyoQwC1k/s72-c/Windows%20Azure%20Big_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-3332214225210986113</id><published>2010-10-20T09:47:00.001+02:00</published><updated>2010-10-20T09:47:01.446+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Azure: ¿Qué es? ¿Cómo? y ¿Por donde comenzar?</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TL6eNwqD2YI/AAAAAAAAAT8/_H-S-4DmpJw/s1600-h/Windows%20Azure%20Big%5B7%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows Azure Big" border="0" alt="Windows Azure Big" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TL6eOwfey2I/AAAAAAAAAUA/bz_woSvdNTo/Windows%20Azure%20Big_thumb%5B3%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Azure va a dar mucho que hablar así, que espero estar por aquí algo más de lo habitual.&lt;/p&gt;  &lt;p&gt;Ya en un &lt;a href="http://eljuanlu.blogspot.com/2010/10/azure-esta-llegando-y-de-que-manera_12.html" target="_blank"&gt;post anterior&lt;/a&gt; comenté algún tema curioso sobre Azure, en este caso en concreto me gustaría dejar un resumen a grandes rasgos de manera que sirva de orientación para el comienzo con esta nueva gran “area de desarrollo”, principalmente para aquellos que aún no conocen poco o nada sobre Azure.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;¿Qué es Azure? y, concretamente, ¿Qué es Windows Azure Platform?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Antes de dar ninguna explicación, me gustaría hacer mención sobre como equiparar a Azure con otros temas históricos de nuestra vida y de los que actualmente nos estamos beneficiando. Este simile aunque ya utilizado en más de una presentación creo que aclara bastante:&amp;#160;&amp;#160; “&lt;em&gt;La electricidad, el gas, etc, los tenemos al alcance de nuestra mano con un servicio. ¿Por qué no hacer lo mismo con la infraestructura de ordenadores y pagar por un servicio prestado? De esta manera cada “uno” se dedica única y exclusivamente a su negocio&lt;/em&gt;”.&amp;#160;&amp;#160; Con el tiempo, hay una menor inversión y se produce un alto &lt;a href="http://es.wikipedia.org/wiki/Retorno_de_la_inversi%C3%B3n" target="_blank"&gt;ROI&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Windows Azure es un entorno de “&lt;a href="http://es.wikipedia.org/wiki/Computaci%C3%B3n_en_nube" target="_blank"&gt;Cloud Computing&lt;/a&gt;” basado en Internet, es decir, un Sistema Operativo basado en Internet.&amp;#160; Una plataforma para el desarrollo de aplicaciones .net en la “nube”, todo ello apoyado en data centers repartidos por todo el mundo.&lt;/p&gt;  &lt;p&gt;Una imagen muy buena que define o da respuesta a esta pregunta es la siguiente. ¡ Creo que hay poco más que contar para una breve respuesta!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/TL6eSKu81-I/AAAAAAAAAUE/06_1kYz7B8s/s1600-h/Microsoft%20Platform%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Microsoft Platform" border="0" alt="Microsoft Platform" src="http://lh4.ggpht.com/_BVsPnNgOu_E/TL6eUyJOAOI/AAAAAAAAAUI/yl2VOXlpd5w/Microsoft%20Platform_thumb%5B2%5D.png?imgmax=800" width="391" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esta plataforma esta formada por:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Windows Azure&lt;/strong&gt;: Computación y capacidad de almacenamiento en la nube. Basicamente un OS.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;App Fabric&lt;/strong&gt;: Bus de datos y Control de acceso. Básicamente un ESB (Enterprise Service Bus).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SQL Azure&lt;/strong&gt;: SQL Server para la nube.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Todo ello con algunas restricciones y algunas diferencias que ya intentaré ir contando poco a poco.&lt;/p&gt;  &lt;p&gt;Adicionalmente, cuando comencemos a estudiar y a intentar aprender Azure, encontraremos muchos acronimos que es conveniente tener presente desde el principio y que yo creo que pueden acortar dicho tiempo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;IaaS: Infraestructure as a Service. Elasticidad y facilidad&amp;#160; para subir máquinas a la nube; maquinas virtuales (WM Ware), Amazon, …&lt;/li&gt;    &lt;li&gt;PaaS: Platform as a Services. Plataforma para la ejecución de software/servicios a medida; Windows Azure, Google App Engine, …&lt;/li&gt;    &lt;li&gt;SaaS: Software as a Services. Productos acabados. Windows Live, Bing, Sharepoint, Twitter, faceboos, Gmail, …&lt;/li&gt;    &lt;li&gt;Windows Azure Appliance: Contenedores de máquinas de Azure administrados por la nube, y que van a encontrarse físicamente en casa del cliente, (éste, los quiere cerca, poque “no se fía”).&lt;/li&gt;    &lt;li&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;&lt;a href="http://en.wikipedia.org/wiki/On-premises_software" target="_blank"&gt;On-premise&lt;/a&gt;: Sistema Software “No-Cloud”.&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Azure se identifica claramentecon algunos adjetivos; Elasticidad, flexibilidad y “&lt;u&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/u&gt;&lt;u&gt;&lt;font style="style"&gt;On-Demand&lt;/font&gt;&lt;/u&gt;&lt;u&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/u&gt;” (En el Cloud, se paga por lo que se usa).&amp;#160; Pincipalmente lo definiría como “&lt;u&gt;&lt;strong&gt;Self-Service&lt;/strong&gt;&lt;/u&gt;”.&lt;/p&gt;  &lt;p&gt;Una vez&amp;#160; entendido que es Windows Azure Platform, he aquí un gráfico identificatio (sacado de uno de los correspondientes White Papers), aunque por el momento no entraremos en detalle:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TL6eWZ3AfNI/AAAAAAAAAUM/o9fofTv3p0w/s1600-h/image%5B4%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TL6eX_g__kI/AAAAAAAAAUQ/IYxWq-RKc9I/image_thumb%5B2%5D.png?imgmax=800" width="349" height="271" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Conviene conocer también que existe una API “&lt;strong&gt;REST&lt;/strong&gt;” (tecnología basada en HTTP y URI), que es utilizada por Azure y que, aunque aparentemente es trasparente, su uso es posible de forma explicita incluso para otros lenguajes para el uso con componentes de la plataforma azure:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TL6eav6XJzI/AAAAAAAAAUU/wT95yuvA9t4/s1600-h/WindowsAzureStorageServices%5B3%5D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WindowsAzureStorageServices" border="0" alt="WindowsAzureStorageServices" src="http://lh3.ggpht.com/_BVsPnNgOu_E/TL6ecgx6nGI/AAAAAAAAAUY/kk7GxXtwRBg/WindowsAzureStorageServices_thumb%5B1%5D.png?imgmax=800" width="359" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;A&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;dicionalmente y de cara a la seguirdad tendremos que entender algunos terminos que aunque ya exsten hace tiempo, se le comenzará a dar más uso en y con la nube; &lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font style="style"&gt;&lt;strong&gt;WIF&lt;/strong&gt; (Windows Identity Foundation); WS_Trust y WS-Federation.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font style="style"&gt;&lt;strong&gt;Claims&lt;/strong&gt;: Es “Algo” que identifica a un usuario; el UserId, el Pwd, la edad, un conjunto de estas, etc.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font style="style"&gt;&lt;strong&gt;STS &lt;/strong&gt;(Security Token Service); Issue, Renew, Validate, Cancel&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font style="style"&gt;&lt;strong&gt;ADSF 2.0&lt;/strong&gt; (Active Directory Federation Services)&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font style="style"&gt;Y mucho más…&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A partir de ahora no tiene por que ir todo a la nube, cada cosa irá en su sitio, exisiten aplicaciones idóneas para la nube mientras que otras no:&lt;/p&gt;  &lt;p&gt;Idóneas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Requieren escalabilidad; interet&lt;/li&gt;    &lt;li&gt;Estacionales; Loterías, rebajas, etc&lt;/li&gt;    &lt;li&gt;Con picos; Ofertas, vuelos, etc&lt;/li&gt;    &lt;li&gt;De crecimiento exponencial generado por los usuarios; facebook, flickr, etc&lt;/li&gt;    &lt;li&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;etc…&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;No idóneas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Lineales, sin perspectiva de crecer.&lt;/li&gt;    &lt;li&gt;Cotrol absoluto del entorno.&lt;/li&gt;    &lt;li&gt;Alta sensibilidad en los datos; datos financieros.&lt;/li&gt;    &lt;li&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;font style="style"&gt;…&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Adicionalmente agradecer anuestro compañero de Geeks Ibon Landa, su &lt;a href="http://geeks.ms/blogs/ilanda/archive/2010/10/04/recopilatorio-sobre-windows-azure.aspx" target="_blank"&gt;recapitulación sobre el inicio con Windows Azure Platform&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Hasta aquí y en pocas palabras, un resumén o recapitulación y punto de partida hacia este gran y maravilloso mundo. En los siguientes post directo al grano con VS 2010 y Windows Azure Cloud Services.&lt;/p&gt;  &lt;p&gt;Saludos desde nube   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-3332214225210986113?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/3332214225210986113/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=3332214225210986113&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3332214225210986113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3332214225210986113'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/10/azure-que-es-como-y-por-donde-comenzar.html' title='Azure: ¿Qué es? ¿Cómo? y ¿Por donde comenzar?'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BVsPnNgOu_E/TL6eOwfey2I/AAAAAAAAAUA/bz_woSvdNTo/s72-c/Windows%20Azure%20Big_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7482133523181017270</id><published>2010-10-12T11:32:00.001+02:00</published><updated>2010-10-12T11:32:59.597+02:00</updated><title type='text'>Azure está llegando, ¡Y de que manera!</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/TLQrSFID9sI/AAAAAAAAAT0/voettE6sUE8/s1600-h/Windows%20Azure%20Big%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; 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 Azure Big" border="0" alt="Windows Azure Big" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TLQrSlJfzDI/AAAAAAAAAT4/fcKEnzagBYI/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800" width="240" height="45" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Muy buenas a todos,&lt;/p&gt;  &lt;p&gt;Windows Azure está ya aquí rondando como ya sabéis y parece ser que no va a parar. Aunque aún estoy un poco “espeso” en la parte técnica a pesar de haber hecho algun que otro ejemplo y ser capaz de captar su potencia, por el momento os dejo algunos vídeos que os pueden dar una idea de lo que se mueve por “ahí fuera” alrededor de Azure, merece la pena echarles un vistazo: &lt;a title="Algunos vídeos sobre Windows Azure" href="http://blogs.msdn.com/b/juanjocarmena/archive/2010/10/05/algunos-v-237-deos-sobre-windows-azure.aspx" target="_blank"&gt;Videos sobre Windows Azure&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Algunas novedades:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/dallas/"&gt;Dallas&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="https://www.sqlazurelabs.com/houston.aspx" href="https://www.sqlazurelabs.com/houston.aspx"&gt;Houston&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Project Sydney, que aún no está disponible. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Y, por otro frente tambien se aproxima “&lt;a href="http://www.microsoft.com/windows/windowsintune/windowsintune-overview.aspx"&gt;Windows Intune&lt;/a&gt;”&lt;/p&gt;  &lt;p&gt;Azufresaludos    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7482133523181017270?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7482133523181017270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7482133523181017270&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7482133523181017270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7482133523181017270'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/10/azure-esta-llegando-y-de-que-manera_12.html' title='Azure está llegando, ¡Y de que manera!'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TLQrSlJfzDI/AAAAAAAAAT4/fcKEnzagBYI/s72-c/Windows%20Azure%20Big_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-5622299525867349098</id><published>2010-09-02T10:04:00.001+02:00</published><updated>2010-09-02T10:04:10.165+02:00</updated><title type='text'>¿Por qué editar manualmente un .msi de 64bits una vez generado?</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TH9aYQhZw7I/AAAAAAAAATc/-gSC9hQ64BA/s1600-h/SetupProject%5B10%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="SetupProject" border="0" alt="SetupProject" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TH9aZ7aH1fI/AAAAAAAAATg/Wd5ZJA9nVYY/SetupProject_thumb%5B8%5D.jpg?imgmax=800" width="470" height="55" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Muy buenas o no tan buenas si es que acabas de llegar de las vacaciones ! :-( &lt;/p&gt;  &lt;p&gt;En esta ocasión y continuando con el tema de alguno de mis posts anteriores sobre los Setups (.msí) quiero comentar un pequeño truco para generar .msi en 64bits de forma automática.&lt;/p&gt;  &lt;p&gt;Si habéis trabajado en la generación de &amp;quot;.msi&amp;quot; de 64bits y haciendo uso de las “Custom Actions”, habéis podido observar que una vez generado este, si se intenta instalar en una máquina de 64bits (a pesar de haber sido generado en 64bits), se obtiene el siguiente error:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/TH9aayXXFjI/AAAAAAAAATk/Sfe1Tu34LwM/s1600-h/Setup_Install_Error%5B7%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Setup_Install_Error" border="0" alt="Setup_Install_Error" src="http://lh6.ggpht.com/_BVsPnNgOu_E/TH9ablrUyGI/AAAAAAAAATo/yd7dB23Ez9Q/Setup_Install_Error_thumb%5B3%5D.jpg?imgmax=800" width="344" height="282" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;¿Por que ocurre esto si realmente hemos generado un .msi de 64bits y lo estamos instalando en una maquina de 64? &lt;/p&gt;  &lt;p&gt;Para dar solución a este tema tendremos que hacer uso de la herramienta “Orca” (o de alguna otra similar), ya postee sobre ella en mis inicios (&lt;a href="http://eljuanlu.blogspot.com/2006/10/aqu-tenemos-otra-pequea-gran-utilidad.html"&gt;&amp;quot;ORCA&amp;quot; - Windows Installer Table Editor&lt;/a&gt;) y mira por donde hoy, vuelvo a hacerle mención, ¡algo bueno tendrá!. Pues bien, esta herramienta nos va a permitir modificar uno de los valores de nuestro .msi con objeto de evitar este error debibo, parece ser a un “bug”, y que llevan ya tiempo sin &lt;font color="#000000"&gt;&lt;strike&gt;querer&lt;/strike&gt;&lt;/font&gt; solucionar. Para ello:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Siguiendo los pasos de mi anterior post “&lt;a href="http://eljuanlu.blogspot.com/2010/04/compilando-en-32-o-en-64-bits.html"&gt;Compilando en 32 o en 64 bits&lt;/a&gt;”, bastará con que compilemos el proyecto “Setup1” para generar el fichero “Setup1.msi”.&lt;/li&gt;    &lt;li&gt;Desde el “Orca” abrir “Setup1.msi” y buscar (Ctrl+F) “InstallUtil”.&lt;/li&gt;    &lt;li&gt;Una vez localizado dicho valor, lo modificamos para que pase a tener este otro “C:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtilLib.dll”.&amp;#160; Como estaremos compilando en una máquina de 32bits no existirá esta ruta, no hay problema, la creamos manualmente y copiamos en ella la dll (InstallUtillLib.dll) que podemos conseguir de cualquier máquina que tenga instalado el framework de 64bits. Esto es necesario porque el Orca valida la existencia del fichero. “No lo he probado, pero me atrevería a segurar que podemos engañar al Orca creando un fichero de texto en blando y renombrandolo con este nombre sin necesidad de tener que tener dicha dll”).&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/TH9ac2rCLII/AAAAAAAAATs/PBOjzgGgb3U/s1600-h/Orca_InstallUtil%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Orca_InstallUtil" border="0" alt="Orca_InstallUtil" src="http://lh5.ggpht.com/_BVsPnNgOu_E/TH9aeI3BEdI/AAAAAAAAATw/k7HDnVXQ0D8/Orca_InstallUtil_thumb%5B1%5D.png?imgmax=800" width="377" height="192" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Ahora el .msi puede ser ejecutado sin errores en una máquina de 64bits.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Adicionalmente y con objeto de hacer esta labor de manera totalmente automática, seguiremos los siguientes pasos: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Generamos una pequeña aplicación de consola y añadimos una referencia&lt;u&gt; COM “Microsoft Windows Installer Object Library&lt;/u&gt;”.&lt;/li&gt;    &lt;li&gt;Añadimos a nuestra clase “program.cs” entre otro, el siguiente código:&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; …Type classType = Type.GetTypeFromProgID(&amp;quot;&lt;span style="color: #8b0000"&gt;WindowsInstaller.Installer&lt;/span&gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Object installerClassObject = Activator.CreateInstance(classType);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WindowsInstaller.Installer i = (WindowsInstaller.Installer)installerClassObject;     &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WindowsInstaller.Database db = i.OpenDatabase(MSIFileSpec, WindowsInstaller.MsiOpenDatabaseMode.msiOpenDatabaseModeTransact);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Running SQL Query for InstallUtil in the Binary MSI table&lt;/span&gt;&amp;quot;);    &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;// NOTE: The ` is correct in the SQL statement below - it is not &amp;quot; or '&lt;/span&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WindowsInstaller.View v = db.OpenView(&amp;quot;&lt;span style="color: #8b0000"&gt;SELECT `Name`,`Data` FROM `Binary` where `Binary`.`Name` = 'InstallUtil'&lt;/span&gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v.Execute(&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WindowsInstaller.Record Record = v.Fetch();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Record != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Updating the Binary Data for InstallUtil&lt;/span&gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Record.SetStream(2, InstallUtil64BitFileSpec);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v.Modify(WindowsInstaller.MsiViewModify.msiViewModifyUpdate, Record);&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ChangesMade = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Error : InstallUtil not found in the Binary MSI Table&lt;/span&gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v.Close();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ChangesMade)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;&lt;span style="color: #8b0000"&gt;Commiting the changes to the database&lt;/span&gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; db.Commit();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }….&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Como se puede ver, lo que finalmente va a hacer nuestra aplicación de consola es exactamente lo mismo que hemos comentado anteriormente con nuestro amiga “Orca”.&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Dotamos a la aplicación de consola del tratamiendo de un parámetro de entrada (ruta del “.msi” a editar).&lt;/li&gt;    &lt;li&gt;Y, finalmente, solo nos queda tener ubicada esta aplicación en un sitio común para que todos nuestros proyecto de Setup la puedan utilizar:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Editamos la propiedad “PostBuildEvent” de cada uno de nuestros poryectos de setup y damos el valor “&amp;lt;AplicacionConsola&amp;gt; ruta_msi”.&lt;/li&gt;      &lt;li&gt;El .msi generado ahora, ya puede instalarse directamente en una máquina de 64bits sin tener que hacer uso de Orca.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: Si se genera un .msi de 64bits desde un entorno de desarrollo de 64bits esto no llega a ocurrir.&lt;/p&gt;  &lt;p&gt;Os dejo aquí (“&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jlguerrero.Proyectos/elGuerre.InstallUtilEditor.zip"&gt;elGuerre.InstallUtilEditor.zip&lt;/a&gt;”) la aplicación de consola para que podáis utilizarla directamente.&lt;/p&gt;  &lt;p&gt;Descarga “Orca” desde &lt;a href="http://support.microsoft.com/kb/255905"&gt;aquí&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Saludos   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-5622299525867349098?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/5622299525867349098/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=5622299525867349098&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5622299525867349098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/5622299525867349098'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/09/por-que-editar-manualmente-un-msi-de.html' title='¿Por qué editar manualmente un .msi de 64bits una vez generado?'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/TH9aZ7aH1fI/AAAAAAAAATg/Wd5ZJA9nVYY/s72-c/SetupProject_thumb%5B8%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-7340368834236968669</id><published>2010-05-25T18:59:00.001+02:00</published><updated>2010-05-25T18:59:35.916+02:00</updated><title type='text'>Forzando el “Merge” cuando hay problemas</title><content type='html'>&lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;He aquí, una anécdota del día a día:&lt;/p&gt;  &lt;p&gt;Hoy estaba intentando hacer un “merge”, ¡la verdad, nada complicado, pero, cuanto más fácil parece, más “enrevesado” e incrompresible resulta! :-D&lt;/p&gt;  &lt;p&gt;Después de no sé cuantos intentos, y de seguir diferentes caminos para intentar conseguirlo, nada de nada, los cambios se resisten.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Problema&lt;/u&gt;&lt;/strong&gt;: Existen muchos cambios a llevar a cabo en el merge pero no se hace efectivo ninguno. Realizas comparaciones de ficheros y son distintos, pero nada, que el “merge” no reconoce los cambios.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Solución&lt;/u&gt;&lt;/strong&gt;: Desde la línea de comandos de Visual Studio, ejecutar la siguiente instrucción:&amp;#160; &lt;/p&gt;  &lt;pre&gt;tf merge /baseless “LocalPath-1” “LocalPath-2” /recursive&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Y, después de la resolución de algún conflicto, “zasssss…” problema resuelto.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Referencia: “&lt;a title="http://msdn.microsoft.com/en-us/library/bb668976.aspx" href="http://msdn.microsoft.com/en-us/library/bb668976.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb668976.aspx&lt;/a&gt;”&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos @3Cantos&lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-7340368834236968669?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/7340368834236968669/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=7340368834236968669&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7340368834236968669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/7340368834236968669'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/05/forzando-el-merge-cuando-hay-problemas.html' title='Forzando el “Merge” cuando hay problemas'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-4811151715331156584</id><published>2010-04-21T09:30:00.001+02:00</published><updated>2010-04-21T09:30:08.119+02:00</updated><title type='text'>“Enterprise Library 5.0” Lista para ser descargada</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/S86pegWKYZI/AAAAAAAAAS0/sRMQGLjZ3D4/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/S86pfKFiqSI/AAAAAAAAAS4/BvRYjHP5EG4/image_thumb.png?imgmax=800" width="244" height="156" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Muy buenas a &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;,&lt;/p&gt;  &lt;p&gt;Ya está lista la Release de lla Entlib 5.0 para ser descargada. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Soporte para .Net Framework 4.0 e Integración en Visual Studio 2010&lt;/li&gt;    &lt;li&gt;Integración con WPF&lt;/li&gt;    &lt;li&gt;Consolas de configuración&amp;#160; de todos los tipos&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Para 32 y 64 bits&lt;/li&gt;      &lt;li&gt;Para 32 y 64 bits con el Framework 4.0&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Y mucho más………….&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Todo, desde &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=bcb166f7-dd16-448b-a152-9845760d9b4c&amp;amp;displaylang=en"&gt;aquí (EntLib 5.0)&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Saludos y a disfrutarla, ;)   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-4811151715331156584?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/4811151715331156584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=4811151715331156584&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4811151715331156584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/4811151715331156584'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/04/enterprise-library-50-lista-para-ser.html' title='“Enterprise Library 5.0” Lista para ser descargada'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_BVsPnNgOu_E/S86pfKFiqSI/AAAAAAAAAS4/BvRYjHP5EG4/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-8771108699975609822</id><published>2010-04-20T21:32:00.001+02:00</published><updated>2010-04-20T21:39:07.128+02:00</updated><title type='text'>Compilando en 32 o en 64 bits</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Últimamente me he encontrado con dudas y preguntas que se plantean algunos compañeros sobre la compilación en 64bits.&amp;#160; En ocasiones, me he encontrado cosas un poco “liososas” al respecto, pero,&amp;#160; sinceramente, despues de hacer un pequeño ejemplo para chequearlo, veo que no parece tan complicado, o al menos eso creo yo.&lt;/p&gt;  &lt;p&gt;Veamos ese ejemplo “chorras” pero que una vez más nos da la solución a la duda&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Crear una solución Visual Studio “Basic Deploy x32 x64”&lt;/li&gt;    &lt;li&gt;Añadir un proyecto de tipo Consola&lt;/li&gt;    &lt;li&gt;Añadir otro proyecto de tipo “Setup” según se muestra en la siguiente figura:&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/S84ANeCUcLI/AAAAAAAAASE/v4RVucC7ZaQ/image_thumb%5B5%5D.png?imgmax=800" width="337" height="213" /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Ahora nuestra solución quedará de la siguiente manera:&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/S84AQfgaSPI/AAAAAAAAASI/S0eP9s9izxg/s1600-h/image%5B13%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_BVsPnNgOu_E/S84AWztlH3I/AAAAAAAAASM/upOEfcoH8_k/image_thumb%5B7%5D.png?imgmax=800" width="331" height="229" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Lo siguiente es crear una nueva plataforma de compilación “x64” tal y como sigue:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Hacer click sobre la solución y seleccionar “Configuration Manager…&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S84AcHmeI1I/AAAAAAAAASQ/VuMBeq4_duQ/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_BVsPnNgOu_E/S84AiK7uPiI/AAAAAAAAASU/FO849QUPQD0/image_thumb%5B10%5D.png?imgmax=800" width="345" height="80" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;A continuación podemos eligir entre copiar la configuración de una plataforma ya existente o vacía (“&amp;lt;Empty&amp;gt;”). La ventaja de utilizar una existente (x86, que siempre está present), tenemos la ventaja de que las opciones de compilación para “Debug” y “Release” están listas.&amp;#160; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S84AlWIO7wI/AAAAAAAAASY/0HNimMHTCiI/image_thumb%5B8%5D.png?imgmax=800" width="244" height="160" /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Ahora ya está todo listo, ajustamos la configuración; “Debug” y “Release” si no lo hemos hecho en el paso anterior, es decir en caso de haber creado la plataforma a partir de una vacía. Para ello tendremos que seleccionar en cada proyecto y para cada uno de los tipos de configuración si queremos marcar, “DEBUG”, “TRACE”, etc… Entre otras cosas, es posible que nos interese cambiar el “Output path”, sino, por defecto la compilación en 32 bits se realizará en “&lt;em&gt;bin\debug&lt;/em&gt;” y&amp;#160; la de 64 en “&lt;em&gt;bin\x64\debug&lt;/em&gt;”.&lt;/li&gt;    &lt;li&gt;Si ejecutamos el proyecto en 32 bits y observamos el c podemos observar como las Dlls utilizadas; Sytem.Core, System.Data, etc son las de 32 bits.&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S84BGIqzh-I/AAAAAAAAASg/U0UppAv_VM4/image_thumb%5B17%5D.png?imgmax=800" width="404" height="298" /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Sin embargo, si ejecutamos la aplicación en 64bits y volvermos a observar el “&lt;a href="http://technet.microsoft.com/es-es/sysinternals/bb896653.aspx"&gt;Process Exprorer&lt;/a&gt;”, vemos como las DLLs utilizadas son las de 64 bits. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/S84BJVPrLMI/AAAAAAAAASk/N8Gxh9ONhbg/s1600-h/image%5B29%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S84BLNo_e5I/AAAAAAAAASo/zdnuQiTZCGY/image_thumb%5B15%5D.png?imgmax=800" width="397" height="292" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Llegado este momento el proyecto compila y se ejecuta en 32 y 64 bits. Es en momento de ver como se comporta el proyecto de SETUP:&lt;/p&gt;  &lt;p&gt;Entre las propieades del proyecto de setup tenemos la propiedad “&lt;em&gt;TargetPlatform&lt;/em&gt;” que tendremos que cambiar según la compilación que queramos hacer; para 32 o para 64 bits.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/S84BMVI_qCI/AAAAAAAAASs/u7PDfO9H6wc/s1600-h/image%5B41%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_BVsPnNgOu_E/S84BNI1BlZI/AAAAAAAAASw/LINrI0Q09Cc/image_thumb%5B21%5D.png?imgmax=800" width="216" height="301" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Hasta aquí, el caso fácil y prácticamente todo automático, pero, siempre existen algunas excepciones o “complicaciones” a tener en cuenta:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;¿Que pasa si tengo que trabajar con directorios específicos de 64bits; “ProgramFiles64Folder”, “CommonFiles64Folder” o, para el caso de 32 bits “ProgramFilesFolder”, “CommonFilesfolder”, etc.? En este caso sólo se podrá trabajar con una plataforma específica, y es posible que tengamos que crear dos proyectos de Setup, uno para 32 y otro para 64. &lt;/li&gt;    &lt;li&gt;Pero, ¿Y si tenemos mucha lógica en el setup; nuevos formularios, custom actions, etc? La idea es intentar evitar dependencias de cada plataforma. Desde mi punto de vista lo mejor es lanzar el .MSI desde un .BAT o .VBS pasando el parámetro “TARGETDIR”.&amp;#160; En cuanto a otros directorios o depencias,&amp;#160; lo mejor es trabajar con “custom actions” creando la lógica adecuada, pero de esta manera siempre un único Setup y sólo cambiando la propiead “&lt;em&gt;TargetPlatform&lt;/em&gt;”. Para más detalle sobre todo esto, hechad un vistazo a mi anterior post; “&lt;a href="http://eljuanlu.blogspot.com/2010/04/como-hacer-un-setup-personalizado-en.html"&gt;Como hacer un setup en 15 min&lt;/a&gt;”.&lt;/li&gt;    &lt;li&gt;¿Que ocurre si nuestro proyecto de 64 bits trabaja con DLLs concretas de terceros?¿Que ocurre con las referencias? Una buena idea puede ser; crear un nuevo proyecto vacío (sin ninguna clase) en el mismo directorio del proyecto de 32 bits, de manera que ambos proyectos lo compartan todo.&amp;#160; Es decir, tendríamos en un mismo directorio dos ficheros “&lt;em&gt;.csproj&lt;/em&gt;”. Bastará incluir las referencias por separado en cada uno de los proyectos y en algún caso, alguna directiva de compilación. En este caso nos tocará crear dos proyectos de Setup. ¡intentemos unificar toda la logica!.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Estos úiltimos puntos dependerán de la complejidad que tenga nuestro Setup.&amp;#160; La cuestión es, complicarse cuanto menos, mejor.&amp;#160;&amp;#160;&amp;#160; El principio &lt;a href="http://es.wikipedia.org/wiki/Kiss"&gt;KISS&lt;/a&gt;, siempre presente.&lt;/p&gt;  &lt;p&gt;Saludos   &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-8771108699975609822?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/8771108699975609822/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=8771108699975609822&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8771108699975609822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/8771108699975609822'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/04/compilando-en-32-o-en-64-bits.html' title='Compilando en 32 o en 64 bits'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_BVsPnNgOu_E/S84ANeCUcLI/AAAAAAAAASE/v4RVucC7ZaQ/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-3919525037295416298</id><published>2010-04-18T19:16:00.001+02:00</published><updated>2010-04-18T19:20:16.723+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio .NET'/><category scheme='http://www.blogger.com/atom/ns#' term='msi'/><category scheme='http://www.blogger.com/atom/ns#' term='Setup'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework .NET'/><title type='text'>Como hacer un setup personalizado en 15min con Visual Studio .NET</title><content type='html'>&lt;p&gt;Muy buenas de nuevo, (y nunca mejor dicho lo de “nuevo”).&lt;/p&gt;  &lt;p&gt;Llevo ya un tiempo sin aparecer por aquí, y la verdad, es que desde entonces no han dejado de aparecer novedades.&amp;#160; Me siento como un niño pequeño que quiere jugar con sus nuevos juguetitos y, de alguna manera “no le dejan”, en fin….. Ya os contaré algunas cosas poco a poco.&lt;/p&gt;  &lt;p&gt;En un intento de retomar mi aparición por aqui, os muestro a continuación y un pequeño artículo sobre la generación de Setup personalizados que escribí hace poco. A ver si os sirve:&lt;/p&gt;  &lt;p&gt;Hace ya un tiempo quería comentar la facilidad de .net para la generación de setup’s personalizados y sobre todo como encaminarlos a la &lt;b&gt;&lt;u&gt;distribución vía SCCM &lt;/u&gt;&lt;/b&gt;(el antiguo SMS) o incluso, como &lt;b&gt;&lt;u&gt;sustitución&lt;/u&gt;&lt;/b&gt; a la generación de diferentes ficheros de configuración para nuestros “famosos” y diferentes entornos; desarrollo, integración y producción.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;¿Por qué copiar de acá para allá diferentes ficheros de configuración que cambian de un día para otro?&lt;/li&gt;    &lt;li&gt;¿No es mejor disponer de un mismo fichero de configuración y no compilar nada para el paso entre entornos?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Vamos a seguir &lt;b&gt;&lt;u&gt;detalladamente&lt;/u&gt;&lt;/b&gt; los pasos adecuados a partir de un sencillo ejemplo que consiste en un formulario Windows que utiliza un texto fijo recuperado del fichero de configuración y que podría ser cualquiera de nuestros proyectos actuales&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Añadimos a la solución existente un proyecto de tipo “Setup and Deployment” con el nombre &amp;lt;NombreProyecto&amp;gt;Setup:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S8s-L4QSXgI/AAAAAAAAARA/MlFHgWvQWRs/s1600-h/clip_image0023.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S8s-NGoCXhI/AAAAAAAAARE/JXP7fJ9L8cY/clip_image002_thumb.jpg?imgmax=800" width="244" height="161" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Añadimos un nuevo proyecto de tipo “Class library” y denominarlo por ejemplo, &amp;lt;NombreProyecto&amp;gt;CustomInstall:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S8s-NsdjtfI/AAAAAAAAARI/HghHkhOpSpc/s1600-h/clip_image0043.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh4.ggpht.com/_BVsPnNgOu_E/S8s-OOU01KI/AAAAAAAAARM/E8jiLhwcoDE/clip_image004_thumb.jpg?imgmax=800" width="244" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Añadimos una nueva clase “CustomParameters.cs” o renombrar la clase “Class1.cs” generada por defecto con la siguiente información:&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Configuration.Install;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; DeployEn15MinCustomInstall&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CustomParameters&lt;br /&gt;    {               &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; System.Collections.IDictionary state = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; PREFIJO_SALUDO = &amp;quot;&lt;span style="color: #8b0000"&gt;PrefijoSaludo&lt;/span&gt;&amp;quot;;&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; _prefijoSaludo;        &lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Constructor para los instalables sin parametros de entrada&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;savedState&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; CustomParameters(IDictionary savedState)&lt;br /&gt;        {&lt;br /&gt;            state = savedState;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; PrefijoSaludo&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; _prefijoSaludo; }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; { _prefijoSaludo = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Recupera los parametros pasados al msi.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;installContext&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; LoadContext(InstallContext installContext)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.PrefijoSaludo = installContext.Parameters[PREFIJO_SALUDO];          &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Donde&lt;/b&gt;; la constante “PREFIJO_SALUDO”, el atributo y la propiedad “PrefijoSaludo” serán sustituidos por cuantos parámetros sean necesarios pasar al ”.msi” para la instalación.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Añadimos una nueva clase “ConfigManager” con objeto de manejar la sección de “AppSettings” del fichero de configuración de la aplicación y poder añadir así nuevos valores a las key’s ya existentes.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ConfigManager&lt;br /&gt;    {&lt;br /&gt;        #region Attributos&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; _ConfigPath;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; Configuration _Config;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; AppSettingsSection _AppSettings;&lt;br /&gt;&lt;br /&gt;        #endregion&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Inicializa una nueva instancia de la clase&amp;lt;see cref=&amp;quot;ConfigUpdater&amp;quot;/&amp;gt;.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;configPath&amp;quot;&amp;gt;The config path.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; ConfigManager(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; configPath)&lt;br /&gt;        {&lt;br /&gt;            _ConfigPath = (configPath == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; ? String.Empty : configPath);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                _Config = ConfigurationManager.OpenExeConfiguration(_ConfigPath);&lt;br /&gt;                _AppSettings = _Config.AppSettings;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ApplicationException(&lt;br /&gt;                    String.Format(&amp;quot;&lt;span style="color: #8b0000"&gt;Error adding new configuration parameters into: '{0}'.{1}{2}&lt;/span&gt;&amp;quot;,&lt;br /&gt;                    _ConfigPath, ex.Message, ex.StackTrace));&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Añade una nueva clave (keyName) a la sección &amp;quot;appSettings&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// del fichero de configuración con un valor (value).&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;keyName&amp;quot;&amp;gt;Nombre de la clave a añadir.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;value&amp;quot;&amp;gt;Valor a asignar a la nueva clave.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; AddParam(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; keyName, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (_AppSettings.Settings[keyName] == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;br /&gt;                _AppSettings.Settings.Add(keyName, &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Elimina del fichero de configuración una clave (keyName) de la sección &amp;quot;appSettings&amp;quot;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// del fichero de configuración.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;keyName&amp;quot;&amp;gt;Nombre de la clave a eliminar..&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RemoveParam(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; keyName)&lt;br /&gt;        {&lt;br /&gt;            _AppSettings.Settings.Remove(keyName);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Modifica o añade una clave (keyName) de la sección &amp;quot;appSettings&amp;quot;.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;keyName&amp;quot;&amp;gt;Nombre de la clare a añadir o modificar.&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;param name=&amp;quot;value&amp;quot;&amp;gt;Valor a asignar a la clave&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SaveParam(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; keyName, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (_AppSettings.Settings[keyName] != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;br /&gt;                _AppSettings.Settings[keyName].Value = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;                AddParam(keyName, &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// Guarda el fichero de configuración con los cambios realizados&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// en la sección &amp;quot;appSetting&amp;quot;.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Save()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!_AppSettings.ElementInformation.IsLocked)&lt;br /&gt;                _Config.Save();&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ApplicationException(&amp;quot;&lt;span style="color: #8b0000"&gt;Section was locked, could not update&lt;/span&gt;&amp;quot;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;5.&lt;/strong&gt; Añadimos al proyecto “CustomIntall” un nuevo ítem de tipo “Installer Class” y lo denominamos por ejemplo “CustomActions.cs”.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S8s-OiF3R5I/AAAAAAAAARQ/8ahxuu0aUIg/s1600-h/clip_image0063.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh3.ggpht.com/_BVsPnNgOu_E/S8s-PAhvWYI/AAAAAAAAARU/lhp2PC3AmSI/clip_image006_thumb.jpg?imgmax=800" width="244" height="145" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El contenido de este fichero será:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Configuration.Install;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Diagnostics;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.IO;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Reflection;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; DeployEn15MinCustomInstall&lt;br /&gt;{&lt;br /&gt;    [RunInstaller(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;)]&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; partial &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; CustomActions : Installer&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; PAREMETER_NOT_SPECIFIED = &amp;quot;&lt;span style="color: #8b0000"&gt;El parámetro de instalación '{0}' no ha sido especificado. La instalación será cancelada.&lt;/span&gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; CustomParameters _parameters = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;        &lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Añadir al array todos los parámetros requeridos durante la instalación.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Dejarlo vacío sino hay parámetros requeridos.&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; ArrayList requiredParameters = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArrayList { CustomParameters.PREFIJO_SALUDO };&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; CustomActions()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Install(System.Collections.IDictionary stateSaver)&lt;br /&gt;        {&lt;br /&gt;#&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; DEBUG&lt;br /&gt;            Debugger.Launch();&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.Install(stateSaver);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #008000"&gt;// Si la instalación es ejectuada previo paso de parámetros.&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Context != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Context.Parameters.Count &amp;gt; 0)&lt;br /&gt;            {&lt;br /&gt;                _parameters = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CustomParameters(stateSaver);&lt;br /&gt;                _parameters.LoadContext(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Context);&lt;br /&gt;&lt;br /&gt;                ConfigureFileConfig();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ConfigureFileConfig()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; assemblyPath = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Context.Parameters[&amp;quot;&lt;span style="color: #8b0000"&gt;assemblyPath&lt;/span&gt;&amp;quot;];&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; fileName = Path.GetFileNameWithoutExtension(assemblyPath).Replace(&amp;quot;&lt;span style="color: #8b0000"&gt;CustomInstall&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style="color: #8b0000"&gt;.exe&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; exeConfigPath = Path.Combine(Directory.GetParent(assemblyPath).FullName, fileName);&lt;br /&gt;&lt;br /&gt;            ConfigManager config = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ConfigManager(exeConfigPath);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.UpdateAppSettings(config);&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #008000"&gt;// Si todo es correcto se realiza el commit del fichero de configuración.&lt;/span&gt;&lt;br /&gt;            config.Save();&lt;br /&gt;&lt;br /&gt;            config = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; UpdateAppSettings(ConfigManager config)&lt;br /&gt;        {&lt;br /&gt;            PropertyInfo[] props = _parameters.GetType().GetProperties();&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (PropertyInfo prop &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; props)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; propValue = prop.GetValue(_parameters, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(propValue))&lt;br /&gt;                {&lt;br /&gt;                    config.SaveParam(prop.Name, propValue);&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #008000"&gt;// Parámetro requerido no especificado&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (requiredParameters.Contains(prop.Name))&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; InstallException(&lt;br /&gt;                            String.Format(PAREMETER_NOT_SPECIFIED, prop.Name));&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;Las siguientes instrucciones &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Las siguientes instrucciones van a permitir realizar una parada en tiempo de depuración con objeto de facilitar dicha labor. Esta instrucción tendrá más sentido cuando el ejecutable no se inicie directamente desde el Visual Studio.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; DEBUG&lt;br /&gt;            Debugger.Launch();&lt;br /&gt;#endif&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;6.&lt;/strong&gt; Añadimos al proyecto de Setup dos items del tipo, “Primary Output”; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;“DeployEn15Min”(Ejecutable Windows Form) y,&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;“DeployEn15MinCustomInstall”(Class Library que contiene el “Installer class”) . &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S8s-PnsPBMI/AAAAAAAAARY/TAmwkd224pw/s1600-h/clip_image0083.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh3.ggpht.com/_BVsPnNgOu_E/S8s-P1ao7CI/AAAAAAAAARc/aNTRUHCADyM/clip_image008_thumb.jpg?imgmax=800" width="212" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;7.&lt;/strong&gt; Finalizado el paso anterior, nuestra solución tendrá la siguiente apariencia además de proyecto de Test correspondiente (como en cualquier proyecto debemos tener siempre):&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_BVsPnNgOu_E/S8s-Qey5LJI/AAAAAAAAARg/UBp3-bnmMb4/s1600-h/clip_image0103.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S8s-RmyUiaI/AAAAAAAAARk/5cAxLvJCr2c/clip_image010_thumb.jpg?imgmax=800" width="244" height="158" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;8.&lt;/strong&gt; A continuación seleccionamos el proyecto “DeployEn15MinSetup” y hacemos click en el icono de “Custom Actions”.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;9.&lt;/strong&gt; Sobre la carpeta “Install” de las Custom Actions, hamemos click derecho y seleccionamos del “Application Folder” el “Primary output” referente al “CustomInstall”.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_BVsPnNgOu_E/S8s-Sby-FPI/AAAAAAAAARo/B3gAabAe3PU/s1600-h/clip_image0123.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh6.ggpht.com/_BVsPnNgOu_E/S8s-TXjdHaI/AAAAAAAAARs/J6ea6FLqPA0/clip_image012_thumb.jpg?imgmax=800" width="244" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;10.&lt;/strong&gt; Generamos un fichero de comandos “.bat” con la siguiente instrucción y lo ejecutamos en la misma carpeta en donde se encuentre el Setup:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;&lt;strong&gt;msiexec /l* &amp;quot;DeployEn15Min.log&amp;quot; /i DeployEn15MinSetup.msi TARGETDIR=&amp;quot;C:\Test\&amp;quot; allUsers=[ALLUSERS] PREFIJOSALUDO=&amp;quot;Deploy en 15 minutos v1.1&amp;quot;&lt;/strong&gt;&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ahora, el ejecutable recibe los parámetros pasados en el comando. Los que se muestran durante la instalación son parámetros estándares, sin embargo, si después de la instalación comprobamos el fichero de configuración resultante, veremos como el valor de la key “PrefijoSaludo” del “appSettings”, ha cambiado por el nuevo valor.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_BVsPnNgOu_E/S8s-UKLtBkI/AAAAAAAAARw/HhWGxM18HVM/s1600-h/clip_image0143.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://lh4.ggpht.com/_BVsPnNgOu_E/S8s-UlAS2LI/AAAAAAAAAR0/BnWZ6gkaKFs/clip_image014_thumb.jpg?imgmax=800" width="244" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Es en este punto, donde cobra fuerza la instrucción, “Debugger.Launch();” antes comentada.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para conseguir la modificación de todos nuestros parámetros de configuración durante la instalación, tendremos que añadir valores a la propiedad “CustomActionData” del Custom Action “&lt;u&gt;Install&lt;/u&gt;” tal y como se indica en la siguiente figura para nuestro parámetro “PrefijoSaludo”:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_BVsPnNgOu_E/S8s-VHOsxjI/AAAAAAAAAR4/1RTIfA4IgOg/s1600-h/clip_image0163.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://lh3.ggpht.com/_BVsPnNgOu_E/S8s-WtG1JBI/AAAAAAAAAR8/ZjUX0UPAsLM/clip_image016_thumb.jpg?imgmax=800" width="244" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Se añadirán tantos valores como parámetros sean susceptibles de recuperar en tiempo de instalación.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Los “custom actions”; “Commit”, “Rollback” y “Uninstall”, serán implementados de la misma manera siempre y cuando en nuestra clase &lt;i&gt;DeployEn15MinCustomInstall.CustomInstall.cs&lt;/i&gt; sobrescribamos los métodos correspondientes. Adicionalmente podrán sobrescribirse otros métodos que ocurren antes o después de estas acciones, con lo que tendremos mayor control sobre cualquier “cosa” que queramos realizar durante y después de la instalación.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El comando “msiexec” recibe un parámetro /l* que permite indicar un fichero de log en el que se registrarán todos pasos generados durante la instalación. Su objetivo, detectar cualquier posible error durante dicho proceso.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Nota&lt;/b&gt;: Con objeto de mejorar la instalación de prerrequisitos, actualizaciones, parches etc. de nuestra aplicación, podemos utilizar un “.&lt;b&gt;vbs&lt;/b&gt;” (Visual Basic Script) en lugar de un “.&lt;b&gt;bat&lt;/b&gt;”, permitiendo de esta manera mayor control; acceso al registro de Windows, etc. El objetivo de esto es permitir a los administradores de sistemas las modificaciones adecuadas según las necesidades concretas de la distribución. Un ejemplo claro podría ser, comprobar una clave del registro de Windows para verificar la existencia de otro programa o prerrequisito, de una versión anterior, etc. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Un saludo desde mi “nueva casa”&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Juanlu, El Guerre &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-3919525037295416298?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/3919525037295416298/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=3919525037295416298&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3919525037295416298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/3919525037295416298'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2010/04/como-hacer-un-setup-personalizado-en.html' title='Como hacer un setup personalizado en 15min con Visual Studio .NET'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_BVsPnNgOu_E/S8s-NGoCXhI/AAAAAAAAARE/JXP7fJ9L8cY/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-1575511632755531025</id><published>2009-02-28T11:54:00.001+01:00</published><updated>2009-02-28T11:54:35.435+01:00</updated><title type='text'>Asp.Net Projects in Visual Studio 2008 &amp; IIS7</title><content type='html'>&lt;p&gt;&lt;img src="http://img408.imageshack.us/img408/6374/iis7defaultpaget.jpg" /&gt;&amp;#160; &lt;strong&gt;AND&lt;/strong&gt;&amp;#160; &lt;img src="http://img257.imageshack.us/img257/9944/wcfhttpcustomheadersm3.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hace unos d&amp;#237;as, tuve la necesidad de formatear (a &lt;strong&gt;Windows Vista&lt;/strong&gt;, aunque para &lt;strong&gt;Windows Server 2008&lt;/strong&gt; el caso hubiese sido el mismo) de nuevo el equipo, &amp;#161;cosa casi habitual!.&amp;#160; Despu&amp;#233;s de otros varios d&amp;#237;as trabajando con el, y tras haber instalado &lt;strong&gt;Visual Studio 2008&lt;/strong&gt; entre otras cosas, :-D, me dispon&amp;#237;a a crear un proyecto ASP.NET con objeto de realizar unas pruebas, pero de repente,&amp;#160; me encuentro con &amp;quot;esto&amp;quot;, no es que sea un error, pero si me parece curioso, o &amp;#161;al menos es la primera vez que lo veo!.&lt;/p&gt;  &lt;p&gt;Pues bien, si intentas publicar un proyecto ASP.NET en un IIS7 (local en mi caso) en donde NO se encuentre instalada la caractar&amp;#237;stica &amp;quot;IIS6 Metabase and II6 Configuration Compatibility&amp;quot; de II6, resulta imposible publicar, curioso como digo, pero, si estoy con II7,&amp;#191;no deber&amp;#237;a evitar esta compatibilidad y trabajar directamente con IIS7?, :-D&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Aqu&amp;#237; os dejo los pasos que segu&amp;#237;:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Crear un proyecto ASP.NET &lt;/li&gt;    &lt;li&gt;Publicar el proyecto en local (Publish Web Site) &lt;/li&gt;    &lt;li&gt;Elegir la publicaci&amp;#243;n en &amp;quot;Local IIS&amp;quot; &lt;/li&gt;    &lt;li&gt;Zassss.... &amp;#161;no se puede! :-$ &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://img527.imageshack.us/img527/9189/iispublishingwebsite.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;A continuaci&amp;#243;n continu&amp;#233; con las indicaciones de &lt;a href="http://technet.microsoft.com/en-us/library/bb397374.aspx"&gt;la instalaci&amp;#243;n de esta&amp;#160; caracter&amp;#237;stica&lt;/a&gt;, marcando s&amp;#243;lo la casita &amp;quot;IIS Metabase and II6 configuration compatibility&amp;quot; y tras un reinicio y una actualizaci&amp;#243;n de &lt;strong&gt;Window Vista&lt;/strong&gt;.... &amp;#161;pues s&amp;#237;, finalmente funcion&amp;#243;!&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img527.imageshack.us/img527/4739/iisfeaturesiis6v.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tampoco soy el &amp;#250;nico con este caso o similar; &lt;a href=" http://blog.dragonsoft.us/2009/01/02/visual-studio-2008-and-iis-7/"&gt;Visual Studio 2008 and IIS 7&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para m&amp;#225;s detalle, aqu&amp;#237; os dejo un enlace bastante interesante sobre temas de deploy con II7: &lt;a href="http://learn.iis.net/page.aspx/387/using-visual-studio-2008-with-iis-70/"&gt;Using Visual Studio 2008 with IIS 7.0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buuueno, poco para aprender, pero algo m&amp;#225;s a tener en cuenta, ;)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @home    &lt;br /&gt;Juanlu&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-1575511632755531025?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/1575511632755531025/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=1575511632755531025&amp;isPopup=true' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1575511632755531025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1575511632755531025'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2009/02/aspnet-projects-in-visual-studio-2008.html' title='Asp.Net Projects in Visual Studio 2008 &amp;amp; IIS7'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-2281204255396976615</id><published>2009-02-15T22:24:00.001+01:00</published><updated>2009-02-15T22:24:49.594+01:00</updated><title type='text'>Exchange, directo al grano con OwaAuth</title><content type='html'>&lt;p&gt;Durante la semana pasada he estado realizando una peque&amp;#241;a POC para el acceso a OWA (Outloook Web Access) via OwaAuth.dll y creo que, en cierto modo, estoy en la necesidad de que no pase al olvido, (si Juan, por si acaso, jejeje...).&lt;/p&gt;  &lt;p&gt;&amp;#191;Que es eso de OwaAuth.dll?&lt;/p&gt;  &lt;p&gt;Se trata de la ISAPI de Exchange para el Logon en Owa. Esta es quiz&amp;#225;s una gran desconocida para muchos y aunque pasa desapercibida puede ser que en alguna ocasi&amp;#243;n sea necesario tener que hacer uso de ella para un prop&amp;#243;sito &amp;quot;un tanto distinto&amp;quot; :-D.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Owa necesita un &amp;quot;sessionid&amp;quot; y un &amp;quot;cadata&amp;quot; para poder acceder y obtener informaci&amp;#243;n de cada una de sus p&amp;#225;ginas, pues bien, owaauth.dll es la encargada de obtener estos dos datos en una primera petici&amp;#243;n http de tipo POST, y, a partir de aqu&amp;#237;, haciendo uso de estos en las peticiones sucesivas cada p&amp;#225;gina web de Owa retornar&amp;#225; el c&amp;#243;digo HTML sin ning&amp;#250;n tipo de pre&amp;#225;mbulo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Paso a paso&lt;/u&gt;&lt;/strong&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Invocar a owaauth.dll mediante una petici&amp;#243;n http (POST) a trav&amp;#233;s de la url: &amp;quot;&lt;a href="https://MACHINE_NAME/owa/auth/owaauth.dll"&gt;https://MACHINE_NAME/owa/auth/owaauth.dll&lt;/a&gt;&amp;quot; y con una serie de par&amp;#225;metros espec&amp;#237;ficos; destination, flags, forcedownlevel, trusted, username, password, submitCreds, isUtf8. Para la obtenci&amp;#243;n de estos par&amp;#225;metros he utilizado el siguiente m&amp;#233;todo: &lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c8d1301b-4b60-4b8f-a4f3-a9febb7f47bb" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:#FFFF80;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetPostData(Uri uri)&lt;br /&gt;{        &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Setting data to create a request body.&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    Dictionary&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt; props &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Dictionary&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;();&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;destination&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;,&lt;br /&gt;uri.Scheme &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; Uri.SchemeDelimiter &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpUtility.UrlEncode(uri.Host &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;/exchange/&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; _user &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;/&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;));&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;flags&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;4&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);            &lt;/span&gt;&lt;span style="color: #008000; "&gt;/*&lt;/span&gt;&lt;span style="color: #008000; "&gt; 0 &lt;/span&gt;&lt;span style="color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;forcedownlevel&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;trusted&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;4&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);          &lt;/span&gt;&lt;span style="color: #008000; "&gt;/*&lt;/span&gt;&lt;span style="color: #008000; "&gt; 0 &lt;/span&gt;&lt;span style="color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;username&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, HttpUtility.UrlEncode(String.Format(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;{0}\{1}&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, _domain, _user)));&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;password&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, HttpUtility.UrlEncode(_password));&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;submitCreds&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;Log+On&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);&lt;br /&gt;    props.Add(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;isUtf8&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;1&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);&lt;br /&gt;&lt;br /&gt;    ASCIIEncoding encoding &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; ASCIIEncoding();&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; postData &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; String.Empty;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; key &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; props.Keys)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; pValue &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;        props.TryGetValue(key, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;out&lt;/span&gt;&lt;span style="color: #000000; "&gt; pValue);&lt;br /&gt;        postData &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;.Format(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;{0}={1}&amp;amp;&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, key, pValue);&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (props.Keys.Count &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;)&lt;br /&gt;        postData &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; postData.Substring(&lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;, postData.Length &lt;/span&gt;&lt;span style="color: #000000; "&gt;-&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;1&lt;/span&gt;&lt;span style="color: #000000; "&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; postData;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Realizada la petici&amp;#243;n HTTP seg&amp;#250;n el siguiente m&amp;#233;todo, se obtienen los datos buscados; &amp;quot;sessionid&amp;quot; y &amp;quot;cadata&amp;quot;. Estos son recuperados en el objeto &amp;quot;&lt;strong&gt;&lt;em&gt;CookieCollection&lt;/em&gt;&lt;/strong&gt;&amp;quot;. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:7626af2b-9189-4115-a0ff-a15e73cf39ea" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:#FFFF80;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; CookieCollection Authenticate(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; url)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; postData &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetPostData(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Uri(url));&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Get Response - Cookie        &lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    var response &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpManager.SendRequest(&lt;br /&gt;        url, postData, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;,&lt;br /&gt;        RequestMethod.POST, _user, _password, _domain,&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;application/x-www-form-urlencoded&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (response.Cookies.Count &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;2&lt;/span&gt;&lt;span style="color: #000000; "&gt;)&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; response.Cookies;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Ahora ya se pueden realizar &lt;strong&gt;peticiones&lt;/strong&gt; a cualquiera de las p&amp;#225;ginas de Owa, eso s&amp;#237;, de tipo GET y teniendo en cuenta que deben ir acompa&amp;#241;adas de &amp;quot;sessionid&amp;quot; y &amp;quot;cadata&amp;quot;. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;La respuesta a cada petici&amp;#243;n contiene el c&amp;#243;digo HTML de cada una de las p&amp;#225;ginas solicitadas. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;El m&amp;#233;todo &amp;quot;SendRequest&amp;quot; es el encargado de realizar:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;La primera petici&amp;#243;n de tipo &amp;quot;POST&amp;quot; y contentType &amp;quot;application/x-www-form-urlencoded&amp;quot; y, &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Cada petici&amp;#243;n de tipo &amp;quot;GET&amp;quot; y contentType &amp;quot;text/xml&amp;quot;. &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c9894341-9207-4755-b469-04dc8256c7f7" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:#FFFF80;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpWebResponse SendRequest(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; url, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; postData,&lt;br /&gt;    CookieCollection cookieCol, RequestMethod requestMethod,&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; user, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; pwd, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; domain, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; contentType)&lt;br /&gt;{&lt;br /&gt;            ServicePointManager.ServerCertificateValidationCallback &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;delegate&lt;/span&gt;&lt;span style="color: #000000; "&gt;(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;true&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;    Uri uri &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Uri(url);&lt;br /&gt;&lt;br /&gt;    var request &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; (HttpWebRequest)HttpWebRequest.Create(uri);&lt;br /&gt;&lt;br /&gt;    request.Method &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; requestMethod.ToString();&lt;br /&gt;    request.CookieContainer &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; CookieContainer();            &lt;br /&gt;    request.ContentType &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; contentType;&lt;br /&gt;    request.AllowAutoRedirect &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;false&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; request.ServicePoint.Expect100Continue = false;&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    request.KeepAlive &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;true&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;    request.UserAgent &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1;&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;                        &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;    request.Accept &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;                    &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;;           &lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] body &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (requestMethod &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; RequestMethod.POST)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; BODY&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;        body &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; Encoding.ASCII.GetBytes(postData);&lt;br /&gt;        request.ContentLength &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; body.Length;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Cookies&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (cookieCol &lt;/span&gt;&lt;span style="color: #000000; "&gt;!=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (Cookie c &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; cookieCol)&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; request.Headers.Add(c.Name, c.Value);&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;            request.CookieContainer.Add(c);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Security&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    CredentialCache credentialCache &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.Net.CredentialCache();&lt;br /&gt;    credentialCache.Add(uri,&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;Basic&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #008000; "&gt;/*&lt;/span&gt;&lt;span style="color: #008000; "&gt; Basic &lt;/span&gt;&lt;span style="color: #008000; "&gt;*/&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;     &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.Net.NetworkCredential(user, pwd, domain)&lt;br /&gt;     );&lt;br /&gt;&lt;br /&gt;    request.Credentials &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; credentialCache;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (requestMethod &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; RequestMethod.POST)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Response&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;        var stream &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; request.GetRequestStream();&lt;br /&gt;        stream.Write(body, &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;, body.Length);&lt;br /&gt;&lt;br /&gt;        stream.Close();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; (HttpWebResponse)request.GetResponse();&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Esto ha sido todo por esta vez, espero como siempre,&amp;#160; haber dado un pasito m&amp;#225;s.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Saludos @SundayHome &lt;br /&gt;  &lt;br /&gt;Juanlu&lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-2281204255396976615?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/2281204255396976615/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=2281204255396976615&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2281204255396976615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/2281204255396976615'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2009/02/exchange-directo-al-grano-con-owaauth.html' title='Exchange, directo al grano con OwaAuth'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-1932798000760805123</id><published>2008-12-07T18:40:00.000+01:00</published><updated>2008-12-07T19:35:35.471+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Communication Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><category scheme='http://www.blogger.com/atom/ns#' term='Framework .NET'/><title type='text'>WCF: Un behavior para personalizar cabeceras HTTP.</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img src="http://img257.imageshack.us/img257/9944/wcfhttpcustomheadersm3.jpg"&gt; &lt;/p&gt; &lt;p&gt;Hace ya unos días ante la necesidad de tener que trabajar con información adicional en las cabeceras ("Headers") HTTP de WCF me encontré con un lugar más donde aplicar un nuevo "Behabior".&amp;nbsp; Como siempre, el tener que crear uno nuevo implica a "vote pronto" un, ¡¡¡bufffff, una vez más a meterse en las entrañas de WCF....!!! si, esta sería quizás la reacción normal, sin embargo no fué así&amp;nbsp; la mia, jejejeje... &lt;/p&gt; &lt;p&gt;Comento a continuación &lt;u&gt;como crear una nuevo Behavior&lt;/u&gt; para este caso y por supuesto con objeto de evitar esta constante idea sobre nuestras mentes informáticas bastante ocupadas, :-D. &lt;/p&gt; &lt;ol&gt; &lt;li&gt;Crear un proyecto "WCF Service Application" y añadir el siguiente método a la clase "Service1" que se crea por defecto:&lt;/li&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:fe119df5-83bd-4339-9704-5778da3af65d" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetHeader()&lt;br /&gt;{&lt;br /&gt;   HttpApplication app &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpContext.Current.ApplicationInstance;&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; header &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; app.Request.Headers[&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;UserQuery&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;];&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; ((header &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;) &lt;/span&gt;&lt;span style="color: #000000; "&gt;||&lt;/span&gt;&lt;span style="color: #000000; "&gt; (header.Length &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;))&lt;br /&gt;      &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;throw&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Exception(String.Format(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;Access Denied. Header information not found. {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;,&lt;br /&gt;header &lt;/span&gt;&lt;span style="color: #000000; "&gt;??&lt;/span&gt;&lt;span style="color: #000000; "&gt; String.Empty));&lt;br /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; header;&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;Crear un proyecto cliente de tipo consola y añadir la clausula using; "&lt;em&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; ConsoleApplication1.localhost;"&lt;/em&gt; y el siguiente código al método "main":&lt;/li&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:18d921d4-58fb-45e6-b3c4-af1314938fd3" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000; "&gt;Service1Client client &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Service1Client();&lt;br /&gt;client.Endpoint.Behaviors.Add(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderEndPointBehavior(&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;UsuarioCabecera1&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;));      &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; header &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt;  client.GetHeader();&lt;br /&gt;            &lt;br /&gt;client.Close();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;Para hostear el servicio en IIS añadir el attributo "[AspNetCompatibilityRequirements(RequirementsMode= AspNetCompatibilityRequirementsMode.Allowed)]" a la clase "Service1", de esta manera, estará disponible el contexto HTTP ("HttpContext.Current") para su tratamiento y de donde obtendremos la información de cabecera enviada por el cliente. &lt;a title="Hosteando WCF en IIS" href="http://eljuanlu.blogspot.com/2008/02/hosteando-en-iis-un-wcf-con-http-basic.html"&gt;Como hostear WCF en IIS&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Publicar el servico Web en IIS, ej.: &lt;a href="http://loclahost:9001/PruebaWCFCustomHeader/Service1.svc"&gt;http://loclahost:9001/PruebaWCFCustomHeader/Service1.svc&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Finalmente, añadir en el proyecto consola la referencia al servicio web con la url del punto anterior.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Run (F5) y a depurar.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Para que todo esto funcione es necesario generar un Behavior específico y para ello&amp;nbsp; será necesario escribir un par de clases que implementen las interfaces &lt;strong&gt;&lt;em&gt;IEndPointBehavior&lt;/em&gt;&lt;/strong&gt; y &lt;strong&gt;&lt;em&gt;IClientMessageInspector.&lt;/em&gt;&lt;/strong&gt; Básicamente los métodos que nos interesan son; &lt;strong&gt;&lt;em&gt;ApplyClientBeabior y&amp;nbsp; BeforeSendRequest &lt;/em&gt;&lt;/strong&gt;respectivamente:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;/u&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;HttpHeaderEndPointBehavior: &lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:2a072efe-4e69-4bcf-86b7-bd736eb2971e" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Description;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Dispatcher;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; elGuerre.Pocs.HttpHeaderExtension;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;namespace&lt;/span&gt;&lt;span style="color: #000000; "&gt; elGuerre.Pocs.HttpHeaderExtension&lt;br /&gt;{&lt;br /&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderEndPointBehavior : IEndpointBehavior&lt;br /&gt; {&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; _UserName;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderEndPointBehavior(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; userAgent)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;this&lt;/span&gt;&lt;span style="color: #000000; "&gt;._UserName &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; userAgent;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; AddBindingParameters(ServiceEndpoint endpoint,&lt;br /&gt;        System.ServiceModel.Channels.BindingParameterCollection bindingParameters)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Nothing to do&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; ApplyClientBehavior(ServiceEndpoint endpoint,&lt;br /&gt;        System.ServiceModel.Dispatcher.ClientRuntime clientRuntime)&lt;br /&gt;    {&lt;br /&gt;        HttpHeaderMessageInspector inspector &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderMessageInspector(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;this&lt;/span&gt;&lt;span style="color: #000000; "&gt;._UserName);&lt;br /&gt;        clientRuntime.MessageInspectors.Add(inspector);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Nothing to do&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Validate(ServiceEndpoint endpoint)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Nothing to do&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;    }&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;HttpHeaderMessageInspector:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:13fd0455-c7f2-4855-abc8-9408296fd635" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Channels;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Dispatcher;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;namespace&lt;/span&gt;&lt;span style="color: #000000; "&gt; elGuerre.Pocs.HttpHeaderExtension&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderMessageInspector : IClientMessageInspector&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;const&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; USER_NAME_HTTP_HEADER &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;UserQuery&lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; _UserName;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; _UserEncodedName;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpHeaderMessageInspector(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; userName)&lt;br /&gt;        {&lt;br /&gt;            _UserName &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; userName;&lt;br /&gt;            _UserEncodedName &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; UserEncodedName&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;            {&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (_UserEncodedName &lt;/span&gt;&lt;span style="color: #000000; "&gt;==&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;)&lt;br /&gt;                {&lt;br /&gt;                    _UserEncodedName &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetBase64Encoded(_UserName);&lt;br /&gt;                }&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; _UserEncodedName;&lt;br /&gt;            }&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; AfterReceiveReply(&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;ref&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Channels.Message reply,&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; correlationState)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Nothing to do.&lt;/span&gt;&lt;span style="color: #008000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000; "&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; BeforeSendRequest(&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;ref&lt;/span&gt;&lt;span style="color: #000000; "&gt; System.ServiceModel.Channels.Message request,&lt;br /&gt;            System.ServiceModel.IClientChannel channel)&lt;br /&gt;        {&lt;br /&gt;            HttpRequestMessageProperty httpRequestMessage;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; httpRequestMessageObject;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (request.Properties.TryGetValue(HttpRequestMessageProperty.Name, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;out&lt;/span&gt;&lt;span style="color: #000000; "&gt; httpRequestMessageObject))&lt;br /&gt;            {&lt;br /&gt;                httpRequestMessage &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; httpRequestMessageObject &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;as&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpRequestMessageProperty;&lt;br /&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;.IsNullOrEmpty(httpRequestMessage.Headers[USER_NAME_HTTP_HEADER]))&lt;br /&gt;                {&lt;br /&gt;                    httpRequestMessage.Headers[USER_NAME_HTTP_HEADER] &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;this&lt;/span&gt;&lt;span style="color: #000000; "&gt;.UserEncodedName;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;else&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;            {&lt;br /&gt;                httpRequestMessage &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; HttpRequestMessageProperty();&lt;br /&gt;                httpRequestMessage.Headers.Add(USER_NAME_HTTP_HEADER, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;this&lt;/span&gt;&lt;span style="color: #000000; "&gt;.UserEncodedName);&lt;br /&gt;                request.Properties.Add(HttpRequestMessageProperty.Name, httpRequestMessage);&lt;br /&gt;            }&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;null&lt;/span&gt;&lt;span style="color: #000000; "&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetBase64Encoded(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; userName)&lt;br /&gt;        {&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] inData;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;char&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] charArr;&lt;br /&gt;&lt;br /&gt;            charArr &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; userName.ToCharArray();&lt;br /&gt;            inData &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;[charArr.Length];&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;for&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;int&lt;/span&gt;&lt;span style="color: #000000; "&gt; i &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;; i &lt;/span&gt;&lt;span style="color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000; "&gt; charArr.Length; i&lt;/span&gt;&lt;span style="color: #000000; "&gt;++&lt;/span&gt;&lt;span style="color: #000000; "&gt;)&lt;br /&gt;            {&lt;br /&gt;                inData[i] &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;)charArr[i];&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; Convert.ToBase64String(inData, &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;, inData.Length);&lt;br /&gt;        }        &lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;:&amp;nbsp; La información de los "bindings" es la generada por defecto, así que para probar este behavior no será necesario nada más, luego, más fácil aún, :-D. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;KIS: "Nada es difícil hasta que se demuestra lo contrario"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Saludos&lt;br&gt;JuanLu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-1932798000760805123?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/1932798000760805123/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=1932798000760805123&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1932798000760805123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1932798000760805123'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2008/12/wcf-un-behavior-para-personalizar.html' title='WCF: Un behavior para personalizar cabeceras HTTP.'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-250525542811262019</id><published>2008-10-31T22:44:00.001+01:00</published><updated>2008-10-31T22:44:49.071+01:00</updated><title type='text'>Algunos BUGs de Web Service Software Factory (WSSF)</title><content type='html'>&lt;p&gt;Durante el uso de Web Service Softwawre Factory en el proyecto actual nos hemos encontrado algún que otro problemilla curioso y que no quiero pasar por alto.&lt;/p&gt; &lt;p&gt;En esta ocasión se trata de un curioso BUG al trabajar con WSSF. Seguro que ya lo conocéis, por que seguro que os habéis pegado con WSSF más que yo, :-D&lt;/p&gt; &lt;p&gt;Este fenómeno se produce siguiendo los siguientes pasos:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Seleccionar un mensaje de tipo XSD en el diseñador&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;img src="http://img388.imageshack.us/img388/4065/wssfbug1kf9.jpg" width="837" height="357"&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Al seleccionar la propiedad "Element" en la ventana de propiedades aparece un cuadro de dialogo como el que sigue, el cual permite seleccionar un fichero xsd adjunto en la solución.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;img src="http://img388.imageshack.us/img388/8104/wssfbug11ax3.jpg" width="364" height="332"&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Seguidamente añadimos a la solución un proyecto de tipo "Setup" o "Web Setup"&lt;/li&gt; &lt;li&gt;Volver al diseñador y repetir la operación inicial, en lugar de aparecer el cuadro de diálogo para la selección del fichero xsd, zasssss..., aquí aparece el "amiguete", ("Object reference not set to an instance of an object") &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;img src="http://img388.imageshack.us/img388/1701/wssfbug12xb0.jpg"&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Curioso pero cierto, ¿solución? Sacar de nuestra el proyecto de "Setup", :-D&lt;/p&gt; &lt;p&gt;También lo he probado con el Framework .NET 3.5 sp1 y&amp;nbsp; Visual Studio 2008 sp1 y nada, los mismo.&amp;nbsp; Por el momento tendremos que esperar hasta una nueva versión de WSSF. &lt;p&gt;Un saludo Halloween"iano"&lt;br&gt;Juanlu, elGuerre&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-250525542811262019?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/250525542811262019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=250525542811262019&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/250525542811262019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/250525542811262019'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2008/10/algunos-bugs-de-web-service-software.html' title='Algunos BUGs de Web Service Software Factory (WSSF)'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-1093805438590768363</id><published>2008-09-29T19:33:00.001+02:00</published><updated>2008-09-29T19:33:43.182+02:00</updated><title type='text'>Creando un "Publisher Policy File"</title><content type='html'>&lt;p&gt;Ya hace unos días comentaba con un compi el cambio de versión de un Assembly y si, es de lo más fácil, pero claro cuando lo usas diariamente, porque cuando dejas de usarlo, pasa lo&amp;nbsp; que pasa, jejeje... si, que las cosas se olvidan o causan duda, :-D.&amp;nbsp; Con objeto de recordar un poco este tema y de aclararlo un poquito más, si es que aún no está claro, que mejor forma de hacerlo que con un ejemplo y con unas cuantas líneas de código.&lt;/p&gt; &lt;p&gt;El ejemplo que voy a mostrar es bastante sencillo y consta de un proyecto tipo DLL con un método y uno tipo consola para ejecutar la prueba:&lt;/p&gt; &lt;p&gt;1) Crear una solución ".net" con dos proyectos; Uno de tipo consola al que llamaré "CheckingAssemblyVersion"&amp;nbsp; y otro de tipo ClassLibrary (ClassLibrary1) de forma que las clase Class1 del proyecto ClassLibrary1 quede de la siguiente forma:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ClassLibrary1&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Class1&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DoSomething()&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;"Something to do"&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2) En la clase Program.cs del proyecto (CheckingAssemblyVersion) invocar al método DoSomething() de Class1, para ello será necesario añadir la referencia a dicho proyecto y una vez añadido, asignar el valor "False " a la propiedad "Copy Local".&amp;nbsp; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;3) Registrar en el GAC ClassLibrar1.dll&lt;/p&gt;&lt;br /&gt;&lt;p&gt;4) Ejecutar la aplicación y todo debería funcionar.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Hasta aquí todo correcto, ahora&amp;nbsp; un cambio de versión a ver que pasa:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1) Añadir un nuevo método DoSomething_2() a&amp;nbsp; Class1&lt;/p&gt;&lt;br /&gt;&lt;p&gt;2) Cambiar la versión en las propiedades del proyecto o en el fichero AssembyInfo.cs&lt;/p&gt;&lt;br /&gt;&lt;p&gt;3) Invocar al método DoSomething_2() desde el programa principal "Program.cs".&lt;/p&gt;&lt;br /&gt;&lt;p&gt;4) Si ahora se registra la dll con la nueva versión y se ejecuta la aplicación, "zass.."&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:47d2a065-cc2a-48a9-8631-3feb59c160d4" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000; "&gt;Could not load file or assembly &lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt;ClassLibrary1, Version=2.0.0.0, Culture=neutral, PublicKeyToken=946ba4a8f00726e4&lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt; or one of its dependencies. The system cannot find the file specified.&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;5) Previamente hay que tener en cuenta lo siguiente:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Decir a nuestro programa que la versión a ejecutar es la 1.0.0.0 o la 2.0.0.0 y para ello:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;a)&amp;nbsp; Incluir el nodo &amp;lt;runtime&amp;gt; y todo su contenido en el fichero de configuración ".config" del proyecto consola, o&lt;/p&gt;&lt;br /&gt;&lt;p&gt;b) Crear un nuevo fichero con todo este contenido, por ejemplo "PolicyVersion.config" en el mismo proyecto de la dll a la que se le pretende hacer referencia.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="1.0"&lt;/span&gt; &lt;span class="attr"&gt;encoding&lt;/span&gt;&lt;span class="kwrd"&gt;="utf-8"&lt;/span&gt; ?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;runtime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblyBinding&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="urn:schemas-microsoft-com:asm.v1"&lt;/span&gt; &lt;span class="attr"&gt;appliesTo&lt;/span&gt;&lt;span class="kwrd"&gt;="&lt;strong&gt;v2.0.50727&lt;/strong&gt;"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dependentAssembly&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;assemblyIdentity&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ClassLibrary1"&lt;/span&gt;&lt;br /&gt;                          &lt;span class="attr"&gt;publicKeyToken&lt;/span&gt;&lt;span class="kwrd"&gt;="946ba4a8f00726e4"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;&amp;lt;!--culture="en-us" /&amp;gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;&amp;lt;!-- Redirecting to version 2.0.0.0 of the assembly. --&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;bindingRedirect&lt;/span&gt; &lt;span class="attr"&gt;oldVersion&lt;/span&gt;&lt;span class="kwrd"&gt;="1.0.0.0"&lt;/span&gt;&lt;br /&gt;                         &lt;span class="attr"&gt;newVersion&lt;/span&gt;&lt;span class="kwrd"&gt;="2.0.0.0"&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;dependentAssembly&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;assemblyBinding&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;runtime&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: El valor "v2.0.50727" del atributo "&lt;span class="attr"&gt;appliesTo&lt;/span&gt;" se refiere a la versión del Framework de .Net con el que se ha creado la dll "ClassLibrary1"&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;6)&amp;nbsp; Si se opta por la opción (a) y a continuación se registra de nuevo la dll en el GAC con la nueva versión todo debería funcionar sin problemas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;7)&amp;nbsp; Si se opta por la opción (b) y a continuación se registra de nuevo la dll en el GAC entonces, "zaaasssss" otra vez:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:2a6c9581-56c1-4a72-8f16-c69e85dc9d3a" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000; "&gt;Method not found: &lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt;System.String ClassLibrary1.Class1.DoSomethingFromConfig()&lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;7.a) Ejecutar la siguiente instrucción desde el "Visual Studio Command Prompt":&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; width: 1087px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:5b26b0fa-78f5-4cb6-a23d-148931e66865" class="wlWriterSmartContent"&gt;&lt;pre style="background-color:Silver;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000; "&gt;al &lt;/span&gt;&lt;span style="color: #000000; "&gt;/&lt;/span&gt;&lt;span style="color: #000000; "&gt;link:PolicyVersion.config &lt;/span&gt;&lt;span style="color: #000000; "&gt;/&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;out&lt;/span&gt;&lt;span style="color: #000000; "&gt;:policy.&lt;/span&gt;&lt;span style="color: #000000; "&gt;2.0&lt;/span&gt;&lt;span style="color: #000000; "&gt;.&lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;.ClassLibrary1.dll &lt;/span&gt;&lt;span style="color: #000000; "&gt;/&lt;/span&gt;&lt;span style="color: #000000; "&gt;keyfile:KeyFileTest.snk &lt;/span&gt;&lt;span style="color: #000000; "&gt;/&lt;/span&gt;&lt;span style="color: #000000; "&gt;v:&lt;/span&gt;&lt;span style="color: #000000; "&gt;1.0&lt;/span&gt;&lt;span style="color: #000000; "&gt;.&lt;/span&gt;&lt;span style="color: #000000; "&gt;0.0&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Nota&lt;/u&gt;&lt;/strong&gt;: a la instrucción anterior se le puede añadir el parámetro "/platform:x86" pero este dependerá de la plataforma utilizada durante la compilación.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;7.b) Registrar la dll "policy.2.0.0.ClassLibrary1.dll" en el GAC.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;7.c) Registrar la dll&amp;nbsp; ClassLibrary1.dll con la versión 2.0.0.0 en el GAC. &lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;8) Todo listo, ahora la aplicación funcionará sin ningún problema.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;9) En ambos casos podría desinstalarse del GAC la versión 1.0.0.0 y el sistema seguiría funcionando siempre y cuando no exista ninguna otra aplicación que la utilice.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;He aquí dos formas de utilizar una nueva versión de una DLL sin necesidad de tener que reinstalar una y otra vez.&amp;nbsp; Esto es especialmente útil para aquellas aplicaciones que tienen que ejecutarse con con versiones específicas.&lt;/p&gt;&lt;br /&gt;&lt;p&gt; El siguiente mensaje aparecerá al intentar depurar la aplicación debido a que las dlls se encuentra instaladas en el GAC y sin ninguna copia local, OK,y listo, el inconveniente es que no puede ser depurada, :-(.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://img440.imageshack.us/img440/481/creatingpublisherfilehw0.jpg"&gt;  &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt; Algunas referencias Referencias:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx" href="http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx"&gt;http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/dz32563a(VS.71).aspx" href="http://msdn.microsoft.com/en-us/library/dz32563a(VS.71).aspx"&gt;http://msdn.microsoft.com/en-us/library/dz32563a(VS.71).aspx&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Espero haber podido aclarar alguna dudilla, ¡bueno, algo es algo!, como se suele decir, "menos da un piedra".&lt;br /&gt;&lt;p&gt;Saludos desde la "Escuela Politécnica de Caceres", concretamente desde la biblioteca ¡Que recuerdos, :-D!&lt;br&gt;Juanlu&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32444172-1093805438590768363?l=eljuanlu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eljuanlu.blogspot.com/feeds/1093805438590768363/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32444172&amp;postID=1093805438590768363&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1093805438590768363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32444172/posts/default/1093805438590768363'/><link rel='alternate' type='text/html' href='http://eljuanlu.blogspot.com/2008/09/creando-un-policy-file.html' title='Creando un &amp;quot;Publisher Policy File&amp;quot;'/><author><name>Juan Luis Guerrero Minero</name><uri>https://profiles.google.com/101108130711343143871</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-4WOajzbWZRw/AAAAAAAAAAI/AAAAAAAAAAA/_8b4-R_wyZY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32444172.post-3645405046887562611</id><published>2008-06-26T09:47:00.001+02:00</published><updated>2008-06-26T09:47:13.601+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Depuración'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio .NET'/><title type='text'>"El Truco del Almendruco" en la depuración con "vsjitdebugger.exe"</title><content type='html'>&lt;p&gt;En más de una ocasión hemos tenido que depurar de una forma un tanto compleja, o al menos no de la forma habitual, es decir ni depurando directamente desde Visual Studio ni atachando procesos, ¡seguro que si!&amp;nbsp; Más concretamente, y para el caso que nos ocupa pondré un para de ejemplos muy prácticos.&lt;/p&gt; &lt;p&gt;Durante estas semanas junto con un compañero de trabajo hemos estado realizando Setups "más o menos complejos" y, bueno, así es como uno se da cuenta de los problemas y de como surgen las necesidades, jejeje...&lt;/p&gt; &lt;p&gt;Durante estos Setups las "Customs Acctions", clases específicas para el tratamiento de acciones durante la instalación/desinstalación, surge la necesidad de depurarlas, y la pregunta es ¿cómo?. Alguno dirá; pues con MessageBox.Show(....), Console.WriteLine(...), etc.. si este mecanismo siempre funciona, pero es bastante más tedioso.&lt;/p&gt; &lt;p&gt;Pues nada de eso, a partir de ahora ¡y claro, para aquel que no conozca este truquito!, será mucho más fácil.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Pasos&lt;/u&gt;&lt;/strong&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Abre el registro de windows: regedit.exe  &lt;li&gt;Localiza la ruta "&lt;strong&gt;\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\&lt;/strong&gt;"  &lt;li&gt;Crear una nueva key "MsiExec.exe"  &lt;li&gt;Para la Key creada, crear un nuevo valor alfanumérico/String value (REG_SZ) y asígnale el nombre "Debugger"  &lt;li&gt;Ahora, asignale el valor "vsjitdebugger.exe"&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Debería quedar así:&lt;/p&gt; &lt;p&gt;&lt;img src="http://img258.imageshack.us/img258/6590/regeditfordebuggerjq3.jpg"&gt; &lt;/p&gt; &lt;p&gt;Esta configuración hará que nuestro depurador; "Visual Studio Just-In-Time Debugger" se inicie cada vez que se ejecute el comando Msiexec.exe&lt;/p&gt; &lt;p&gt;&lt;img src="http://img241.imageshack.us/img241/5155/autodebuggerlaunchedrf3.jpg"&gt; &lt;/p&gt; &lt;p&gt;Si ahora sobre nuestro proyecto de Setup de Visual Studio, hacemos "click" con el botón derecho de ratón y pulsamos "Install",&amp;nbsp; "Tachaaaaannnnnn" ¡a depurar!, claro, previamente estableceremos los puntos de ruptura (Break Points) adecuados, :-D.&lt;/p&gt; &lt;p&gt;De la misma forma, si queremos instalar un &lt;strong&gt;Servicio Windows&lt;/strong&gt; en la consola de servicios y utilizamos "InstallUtil" repetiremos los pasos sustituyendo MsiExec.exe por "&lt;strong&gt;InstallUtil.exe&lt;/strong&gt;".&lt;/p&gt; &lt;p&gt;Una vez que hayamos finalizado la depuración, Modificar la key "MsiExed.exe" para que no se ejecute siempre, de manera que quede algo como; " _***_MsiExec.exe". De forma similar para InstallUtil.exe, por ejemplo _***_InstallUtil.exe.&lt;/p&gt; &lt;p&gt;Tambíen podríamos sustituir&amp;nbsp; nuestro depurador "vsjitdebugger.exe" por cualquier otro disponible en nuestra máquina.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Por supuesto, gracias a Javier,(si, el de las cervecitas, jejeje...) por tal descubrimiento.&lt;/p&gt; &lt;p&gt;&a
