<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es"><title type="html">El Bruno</title><subtitle type="html" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/atom.aspx</id><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blog.avanadeadvisor.com/blogs/elbruno/atom.aspx" /><generator uri="http://communityserver.org" version="2.0.60217.2664">Community Server</generator><updated>2008-11-02T21:52:28Z</updated><entry><title>[TFS2010] TFSBuild 2010, lanzando Builds desde ShelveSets</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/18/12124.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/18/12124.aspx</id><published>2008-11-19T02:48:43Z</published><updated>2008-11-19T02:48:43Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;ayer coment&amp;#233; un poco sobre los nuevos &amp;quot;&lt;strong&gt;&lt;em&gt;Gated CheckIn&lt;/em&gt;&lt;/strong&gt;&amp;quot; incluidos en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;. Una de las grandes ventajas de esta nueva funcionalidad radica en que es posible validar secciones de c&amp;#243;digo espec&amp;#237;ficas utilizando un proceso de Build (con todo lo que conlleva, compilaci&amp;#243;n, ejecuci&amp;#243;n de pruebas, etc.) antes de que las mismas suban al gestor de c&amp;#243;digo fuente en un ChangeSet.&lt;/p&gt;  &lt;p&gt;Para poder trabajar de esta forma, estas compilaciones aprovechan la capacidad de crear estadios intermedios para nuestros archivos a trav&amp;#233;s de &lt;a href="http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx" target="_blank"&gt;&lt;strong&gt;ShelveSets&lt;/strong&gt;&lt;/a&gt; (recomendado leer &lt;a href="http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx" target="_blank"&gt;este link&lt;/a&gt; para comprender como funcionan). &lt;/p&gt;  &lt;p&gt;Los siguientes apartados detallan algunos puntos a tener en cuenta:&lt;/p&gt;  &lt;p&gt;1. En la secci&amp;#243;n de Triggers de un Build podemos definir que el mismo se dispare manualmente para trabajar con ShelveSets&lt;/p&gt;  &lt;p&gt;&lt;a href="http://img266.imageshack.us/my.php?image=tfs01fq2.jpg"&gt;&lt;img src="http://img266.imageshack.us/img266/7283/tfs01fq2.th.jpg" border="0" /&gt; &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. Cuando se desea encolar una nueva Build, podemos ver que en la misma existe una opci&amp;#243;n &amp;quot;&lt;em&gt;What do you want to Build?&lt;/em&gt;&amp;quot; que permite seleccionar entre el c&amp;#243;digo fuente del servidor TFS o un ShelveSet en particular. En el caso del ShelveSet, tenemos un formulario para poder seleccionar el mismo de la lista de ShelveSets existentes en el Server.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img120.imageshack.us/img120/6522/tfs02to5.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Asimismo es posible, definir que si la compilaci&amp;#243;n no tiene errores, los cambios del ShelveSet se suban como un ChangeSet con la opci&amp;#243;n &amp;quot;&lt;em&gt;Check in changes after successful build&lt;/em&gt;&amp;quot;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. El listado hist&amp;#243;rico de Builds y en ejecuci&amp;#243;n, permite distinguir los 2 tipos de Builds, con una imagen especial. En la siguiente imagen, los Builds 2, 3, 4 y 5 han sido lanzados desde un ShelveSet&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img146.imageshack.us/img146/1880/tfs04kh1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. Finalmente en un Build ejecutado sin errores, si no se ha seleccionado la opci&amp;#243;n de subir los cambios autom&amp;#225;ticamente; es posible subir los cambios de c&amp;#243;digo del ShelveSet a nuestro servidor de c&amp;#243;digo fuente como un ChangeSet&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img220.imageshack.us/img220/9761/tfs06ev0.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;  &lt;p&gt;Referencias:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Working with Source Control ShelveSets     &lt;br /&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx" href="http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms181403(VS.80).aspx&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12124" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Gated CheckIn; validaciones previas a una acci&amp;amp;#243;n de CheckIn</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/17/12123.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/17/12123.aspx</id><published>2008-11-18T04:09:37Z</published><updated>2008-11-18T04:09:37Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;hace unos d&amp;#237;as &lt;a href="http://geeks.ms/blogs/eortuno/"&gt;Enrique&lt;/a&gt; propuso &lt;a href="http://geeks.ms/blogs/eortuno/archive/2008/11/16/algo-mas-que-hacer-build.aspx"&gt;un par de escenarios comunes de trabajo&lt;/a&gt; donde se planteaba la posibilidad de realizar una validaci&amp;#243;n previa al CheckIn de un desarrollador utilizando un Build, para validar de esta manera la calidad y el trabajo del c&amp;#243;digo a subir al control de c&amp;#243;digo fuente. En el post, se nombraron varias herramientas y yo dej&amp;#233; caer como posibilidad comenzar a estudiar una nueva caracter&amp;#237;stica incluida en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; denominada &lt;strong&gt;&lt;em&gt;Gated CheckIn&lt;/em&gt;&lt;/strong&gt; (he realizado una peque&amp;#241;a b&amp;#250;squeda y me parece que no hay referencias a este t&amp;#233;rmino fuera del mundo MS).&lt;/p&gt;  &lt;p&gt;La principal base de esta funcionalidad se basa en que los desarrolladores no pueden subir c&amp;#243;digo directamente en el control de c&amp;#243;digo fuente. En cambio, se sube un ShelveSet con los cambios pendientes y se realiza una Build con el mismo para comprobar la compilaci&amp;#243;n y si se pasan las pruebas unitarias. Si toda la acci&amp;#243;n ha ido correctamente, se procede al CheckIn.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Descripci&amp;#243;n Paso a Paso&lt;/h3&gt;  &lt;p&gt;1. Una parte importante de este proceso es configurar un Build dentro de un Team Project en Team Foundation Server 2010, donde el trigger que dispare el mismo, sea un &lt;strong&gt;&lt;em&gt;Gated CheckIn&lt;/em&gt;&lt;/strong&gt;. La siguiente imagen muestra la nueva ventana de propiedades para los triggers de un Build&lt;/p&gt;  &lt;p&gt;&lt;a href="http://img89.imageshack.us/img89/3649/tfs01rt9.jpg" target="_blank"&gt;&lt;img height="367" src="http://img89.imageshack.us/img89/3649/tfs01rt9.jpg" width="936" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. Luego de configurar este Build en un Team Project, al momento de realizar una tarea de CheckIn, podremos ver que adem&amp;#225;s de los pasos usuales del proceso, aparece una nueva ventana alertando que los cambios deben ser validados previos al CheckIn. Esta opci&amp;#243;n crear&amp;#225; un nuevo ShelveSet, y he optado como opci&amp;#243;n preservar los cambios localmente&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img243.imageshack.us/img243/3526/tfs02ks8.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. Un nuevo Build se agrega en el servidor de compilaci&amp;#243;n y el resultado del mismo, definir&amp;#225; si los cambios en el c&amp;#243;digo se suben al control de c&amp;#243;digo fuente.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img518.imageshack.us/img518/1909/tfs03wi7.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. En este caso en particular he incluido errores en el c&amp;#243;digo para que el Build sea err&amp;#243;neo, con lo que los cambios no se aplicar&amp;#225;n.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img440.imageshack.us/img440/8965/tfs04ei2.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5. Una vez solucionados los problemas en el c&amp;#243;digo fuente, y verificadas las pruebas correspondientes; un nuevo proceso de CheckIn es disparado. Sin embargo en este caso, el resultado del mismo es correcto lo que nos habilitar&amp;#225; a subir los cambios al control de c&amp;#243;digo fuente.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img444.imageshack.us/img444/6294/tfs05az3.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6. Para subir estos cambios, debemos seleccionar el Build correcto, y desplegando el men&amp;#250; contextual sobre el mismo seleccionar la opci&amp;#243;n &amp;quot;&lt;em&gt;&lt;strong&gt;Update Workspace&lt;/strong&gt;&lt;/em&gt;&amp;quot;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://img518.imageshack.us/img518/5498/tfs06gy8.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. Esto nos permitir&amp;#225; &amp;quot;reconciliar&amp;quot; los archivos del Build, basados en un ShelveSet, con los archivos del Source Control para de esta forma, poseer una versi&amp;#243;n definitiva y correcta de los mismos.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img101.imageshack.us/img101/8589/tfs07cj4.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;8. CheckIn listo y con las pruebas completas !!!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Los &lt;strong&gt;&lt;em&gt;Gated CheckIn&lt;/em&gt;&lt;/strong&gt; son una de las grandes novedades en la nueva versi&amp;#243;n de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;, sin embargo creo que todav&amp;#237;a se puede mejorar mucho la integraci&amp;#243;n y experiencia de usuario con los mismos, por ejemplo a&amp;#241;adiendo un par de opci&amp;#243;n para un Build por defecto en un Team Project, o mejorando la ventana de CheckIn. &lt;/p&gt;  &lt;p&gt;Como todav&amp;#237;a falta para la versi&amp;#243;n final de VSTS 2010, seguro que nos encontraremos con un par de novedades por el camino.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home (finally)&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12123" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[VSTS2010] Test Impact Window, conociendo de antemano los tests que afectan al c&amp;amp;#243;digo modificado</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/16/12115.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/16/12115.aspx</id><published>2008-11-17T01:20:36Z</published><updated>2008-11-17T01:20:36Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;si bien todo el mundo sabe que es altamente recomendable ejecutar las pruebas definidas antes de subir el c&amp;#243;digo fuente al gestor de c&amp;#243;digo muchas veces por vagancia o por desgano esta tarea no se realiza. En muchas ocasiones, el argumento suele ser que la ejecuci&amp;#243;n de todos los tests &amp;quot;tarda mucho&amp;quot; y esto ralentiza la din&amp;#225;mica del equipo de trabajo (recordemos que cuando m&amp;#225;s r&amp;#225;pido mejor).&lt;/p&gt;  &lt;p&gt;Por suerte &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; incorpora un nuevo panel que puede ayudarnos bastante &amp;quot;&lt;em&gt;Test Impact View&lt;/em&gt;&amp;quot;. Este panel, como muestra la siguiente imagen nos proporciona una vista de todas las funciones que hemos modificado y adem&amp;#225;s la lista de Tests que afectan a cada una.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img513.imageshack.us/img513/7875/tfs01ya3.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Para poder identificar los tests que afectan al c&amp;#243;digo modificado, esta ventana se vale de una definici&amp;#243;n de un Build donde se especifica uno o m&amp;#225;s proyectos a compilar, con sus correspondientes tests. Una vez identificados, simplemente podremos ejecutarlos y asegurarnos que, antes de hacer CheckIn, como m&amp;#237;nimo hemos probado con los tests definidos para el c&amp;#243;digo que hemos modificado.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ AVE (Bcn-&amp;gt;Madrid)&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;  &lt;p&gt;PD: Lamentablemente no he podido cerrar la demo completa por un error en la CTP, la lista de tests solo se ha reflejado una vez y no he podido volver a obtenerla; veremos que dicen nuestros amigos de MS con respecto a este probable error de la CTP.&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12115" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Nuevas opciones en la ventana de Hist&amp;amp;#243;rico de elementos en Source Control Explorer, incluido el visor gr&amp;amp;#225;fico de hist&amp;amp;#243;rico de ChangeSets</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/15/12114.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/15/12114.aspx</id><published>2008-11-16T02:43:06Z</published><updated>2008-11-16T02:43:06Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;el nuevo formulario para presentar la informaci&amp;#243;n hist&amp;#243;rica de un elemento del Source Control Explorer incorpora nuevas funcionalidades que se echaban en falta desde hace tiempo. Especialmente si trabajas con Branches y con un esquema de promoci&amp;#243;n de informaci&amp;#243;n entre los mismos.&lt;/p&gt;  &lt;p&gt;Por ejemplo, en la siguiente imagen podemos ver que en el listado hist&amp;#243;rico de los ChangeSets del archivo &lt;em&gt;Customer.cs&lt;/em&gt;, vemos no solo el hist&amp;#243;rico de ChangeSets, sino que adem&amp;#225;s podemos ver la relaci&amp;#243;n que tiene con otros cambios de otros Branches de forma jer&amp;#225;rquica.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img135.imageshack.us/img135/9474/tfs01ng4.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Adem&amp;#225;s podemos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Ver el contenido del archivo en el momento del ChangeSet &lt;/li&gt;    &lt;li&gt;Ver el detalle del ChangeSet &lt;/li&gt;    &lt;li&gt;Comparar archivos entre 2 ChangeSets de la lista &lt;/li&gt;    &lt;li&gt;Comparar directorios entre 2 ChangeSets de la lista (so cool !!!) &lt;/li&gt;    &lt;li&gt;Ver el detalle en modo &lt;em&gt;Annotate&lt;/em&gt; del archivo en el ChangeSet (&lt;em&gt;Historic Annotate&lt;/em&gt;) &lt;/li&gt;    &lt;li&gt;Obtener el archivo de esa versi&amp;#243;n &lt;/li&gt;    &lt;li&gt;Realizar un seguimiento de cambios &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Sobre este &amp;#250;ltimo punto quiero detallar un poco m&amp;#225;s, ya que esta funcionalidad es una de las m&amp;#225;s importantes seg&amp;#250;n mi punto de vista. Pensemos durante un segundo que tenemos un escenario complejo con muchos Branches; en este tipo de escenarios poder realizar un seguimiento de los cambios a los distintos Branches suele ser una tarea compleja. Sin embargo, la siguiente herramienta nos puede ayudar bastante.&lt;/p&gt;  &lt;p&gt;Al momento de seleccionar la opci&amp;#243;n &amp;quot;&lt;em&gt;Track Changeset&lt;/em&gt;&amp;quot;, veremos un formulario para definir el scope (los Branches) de la b&amp;#250;squeda de informaci&amp;#243;n.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img232.imageshack.us/img232/231/tfs02xn5.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A continuaci&amp;#243;n, podremos ver en &lt;strike&gt;otro DSL&lt;/strike&gt; en otro formulario visual, en que fechas se han ido pasando los cambios del ChangeSet original a los diferentes Branches.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img84.imageshack.us/img84/6691/tfs03hd2.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Adem&amp;#225;s, sobre cualquiera de los ChangeSets que aparecen en el visor, podremos realizar las acciones b&amp;#225;sicas de trabajo sobre un ChangeSet, incluido el drag and drop de diferentes ChangeSets entre diferentes Branches&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img204.imageshack.us/img204/3700/tfs04ys6.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Finalmente no quiero dejar de mencionar que a todas estas acciones que realizamos sobre uno o m&amp;#225;s ChangeSets, tambi&amp;#233;n las podemos realizar sobre un listado hist&amp;#243;rico de Labels, utilizando la 2da pesta&amp;#241;a del formulario de hist&amp;#243;rico de un archivo.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img142.imageshack.us/img142/2580/tfs05yf1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Barcelona&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12114" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Conflictos en la ventana de Pending Changes</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/12/12110.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/12/12110.aspx</id><published>2008-11-12T23:11:35Z</published><updated>2008-11-12T23:11:35Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;este ha sido un d&amp;#237;a excelente en el TechEd, adem&amp;#225;s de asistir a una sesi&amp;#243;n sobre &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; dictada por el mism&amp;#237;simo &lt;a href="http://blogs.msdn.microsoft.com/bharry"&gt;Brian Harry&lt;/a&gt;; luego en una sesi&amp;#243;n interactiva, se han pulido algunos puntos muy interesantes sobre el presente y futuro de &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/default.aspx"&gt;Visual Studio Team System&lt;/a&gt;. Adem&amp;#225;s, mientras est&amp;#225;bamos con &lt;a href="http://www.lfraile.net"&gt;Luis&lt;/a&gt; en el booth del Ask The Experts de Team System, BHarry se nos ha acercado y ha respondido algunas preguntas muy interesantes ... :D&lt;/p&gt;  &lt;p&gt;En medio de este ping-pong sobre &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; me di cuenta que en la ventana de Pending Changes del IDE de Visual Studio, en la nueva versi&amp;#243;n existe un nuevo apartado que nos muestra los conflictos en los archivos que estamos por &amp;quot;subir&amp;quot; al Source Control.&lt;/p&gt;  &lt;p&gt;Por ejemplo, la siguiente imagen muestra como al momento de revisar los Pending Changes, el archivo &lt;em&gt;Customer.cs&lt;/em&gt; presenta conflictos con la versi&amp;#243;n alojada en el Server.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img125.imageshack.us/img125/1417/tfs01mx6.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Utilizando este nuevo formulario vemos que podemos realizar las siguientes acciones:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Merge Changes in Merge Tool &lt;/li&gt;    &lt;li&gt;Take Server Version &lt;/li&gt;    &lt;li&gt;Keep Local Version &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Adem&amp;#225;s de ver los diferentes ChangeSets que involucran los cambios del archivo (46 y 48 en este caso) y el tipo de conflicto que existe para este archivo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ TechEd&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12110" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Novedades en la nueva versi&amp;amp;#243;n de Team System Web Access</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/11/12109.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/11/12109.aspx</id><published>2008-11-11T21:25:50Z</published><updated>2008-11-11T21:25:50Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas, &lt;/p&gt;  &lt;p&gt;en los &amp;#250;ltimos d&amp;#237;as escrib&amp;#237; un par de posts donde comentaba algunas de las nuevas capacidades que se inclu&amp;#237;an en el nuevo &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; relacionadas con las capacidades de edici&amp;#243;n y manejo para los WorkItems.&lt;/p&gt;  &lt;p&gt;Ayer mientras estaba en el panel del Ask The Experts para Team System, surgi&amp;#243; una pregunta relacionada con este tema y sobre como se las arreglaba nuestro querido &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/bb676728.aspx"&gt;Team System Web Access&lt;/a&gt; con estas &amp;quot;new features&amp;quot;.&lt;/p&gt;  &lt;p&gt;De memoria respond&amp;#237; que se soportaba lo mismo que en el IDE de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;1. &lt;a href="http://elbruno.com/blogs/elbruno/archive/2008/10/28/tfs2010-nuevas-opciones-para-las-relaciones-entre-workitems.aspx"&gt;Nuevas opciones para las relaciones entre WorkItems&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Esta opci&amp;#243;n se incluye dentro de TSWA, aunque un poco m&amp;#225;s limitada en lo que se refiere a la interfaz de usuario. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://img519.imageshack.us/img519/4439/tfs01nq1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Como podemos ver en las siguientes im&amp;#225;genes la vista jer&amp;#225;rquica con las relaciones entre diferentes WorkItems se incluye en TSWA.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img265.imageshack.us/img265/6145/tfs02cw1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. &lt;a href="http://elbruno.com/blogs/elbruno/archive/2008/10/30/tfs2010-novedades-para-la-edici-243-n-de-informaci-243-n-con-workitems.aspx"&gt;Novedades para la edici&amp;#243;n de informaci&amp;#243;n con WorkItems&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El editor de contenido que soporta formato tambi&amp;#233;n se ha incluido en TSWA, los dem&amp;#225;s editores funcionan correctamente y de la misma manera que en el IDE de VS.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img216.imageshack.us/img216/7614/tfs03su1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. &lt;a href="http://elbruno.com/blogs/elbruno/archive/2008/10/29/tfs2010-novedades-en-el-workitem-query-window.aspx"&gt;Novedades en el WorkItem Query Window&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El editor de consultas sobre WorkItems, tambi&amp;#233;n incluye en la interfaz TSWA, las novedades que coment&amp;#233; sobre el editor del IDE de VS&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img293.imageshack.us/img293/9009/tfs04if9.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. &lt;a href="http://elbruno.com/blogs/elbruno/archive/2008/11/05/tfs2010-utilizando-carpetas-para-organizar-workitems-queries.aspx"&gt;Utilizando carpetas para organizar WorkItems Queries&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esta opci&amp;#243;n se ha incluido dentro de TSWA, incluyendo las opciones para crear carpetas y para navegar en las mismas.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img372.imageshack.us/img372/3249/tfs11rz9.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; El &amp;#250;nico error que he encontrado por el momento, est&amp;#225; relacionado con el visor de pasos de Test que se relacionan con un Bug cuando esta informaci&amp;#243;n se carga desde Camano. Pero como todav&amp;#237;a no he comenzado a postear sobre Camano, lo comentar&amp;#233; m&amp;#225;s adelante.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ TechEd &lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12109" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[VSTS2010] Sintaxis de VB.Net</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/10/12105.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/10/12105.aspx</id><published>2008-11-10T23:20:53Z</published><updated>2008-11-10T23:20:53Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;el post de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; del d&amp;#237;a de hoy es bastante r&amp;#225;pido pero creo que uno de los mejores que he escrito.&lt;/p&gt;  &lt;p&gt;&amp;#191;Quien puede decirme la diferencia entre este c&amp;#243;digo:&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:3a93ce30-b549-4375-b3e9-2cb639e969e2"&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;1&lt;/span&gt; &lt;span&gt;Public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Class&lt;/span&gt;&lt;span&gt; Demo
&lt;/span&gt;&lt;span&gt;2&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;Sub&lt;/span&gt;&lt;span&gt; SubDemo()
&lt;/span&gt;&lt;span&gt;3&lt;/span&gt; &lt;span&gt;    &lt;/span&gt;&lt;span&gt;Dim&lt;/span&gt;&lt;span&gt; x &lt;/span&gt;&lt;span&gt;As&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; _
&lt;/span&gt;&lt;span&gt;4&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Hola Valentino&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;5&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;End Sub&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;6&lt;/span&gt; &lt;span&gt;&lt;/span&gt;&lt;span&gt;End Class&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;y &amp;#233;ste c&amp;#243;digo?&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:7b89521c-5796-422b-91f7-557618a2f2b4"&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;1&lt;/span&gt; &lt;span&gt;Public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Class&lt;/span&gt;&lt;span&gt; Demo
&lt;/span&gt;&lt;span&gt;2&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;Sub&lt;/span&gt;&lt;span&gt; SubDemo()
&lt;/span&gt;&lt;span&gt;3&lt;/span&gt; &lt;span&gt;    &lt;/span&gt;&lt;span&gt;Dim&lt;/span&gt;&lt;span&gt; x &lt;/span&gt;&lt;span&gt;As&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; 
&lt;/span&gt;&lt;span&gt;4&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;Hola Valentino&lt;/span&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;5&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;End Sub&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;6&lt;/span&gt; &lt;span&gt;&lt;/span&gt;&lt;span&gt;End Class&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;No es simple de ver, pero la diferencia est&amp;#225; all&amp;#237; (l&amp;#237;nea 3):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;En la pr&amp;#243;xima versi&amp;#243;n de Visual Basic (a&amp;#250;n no s&amp;#233; el nombre clave para la versi&amp;#243;n de VB que soporte .Net Framework 4.0) &lt;strong&gt;se elimina la necesidad de utilizar el caracter '_'&lt;/strong&gt; para separar los saltos de carro.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos @ TechEd&lt;/p&gt;

&lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12105" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[Off-Topic] En TechEd @ Barcelona, preparando el evento de MS Robotics (y con ganas de ver a Messi)</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/10/12104.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/10/12104.aspx</id><published>2008-11-10T15:15:35Z</published><updated>2008-11-10T15:15:35Z</updated><content type="html">&lt;p&gt;&lt;img src="http://img388.imageshack.us/img388/9481/elbrunocuerpocompletozu7.gif" align="right" /&gt; Buenas,&lt;/p&gt;  &lt;p&gt;pues esta semana cambiar&amp;#233; un poco la tem&amp;#225;tica de los posts, ya que me encuentro en Barcelona en el &lt;em&gt;TechEd&lt;/em&gt;. Por primera vez estar&amp;#233; en panel de &lt;em&gt;Ask The Experts&lt;/em&gt; de &lt;em&gt;Team System&lt;/em&gt;, compartiendo sitio con muchos cracks que han puesto el nivel alt&amp;#237;simo. Lo mejor de este tipo de eventos, es que yo podr&amp;#233; dedicarme a las preguntas simples y dejar los temas complicados para la gente que realmente sabe.&lt;/p&gt;  &lt;p&gt;Por otra parte el pr&amp;#243;ximo viernes 14 de Noviembre, cumpliendo una promesa que le hice a la gente de BCNDev.Net hace bastante tiempo, ser&amp;#233; el ponente de una charla de MSRobotics donde veremos como los primeros pasos necesarios para la conquista global utilizando un Lego Mindstorms y el lanza misiles USB.&lt;/p&gt;  &lt;p&gt;Adem&amp;#225;s, y como dato interesante: &lt;strong&gt;SORTEAREMOS UN LEGO MINDSTORM NXT&lt;/strong&gt; en el evento entre los asistentes al mismo ... as&amp;#237; que la cosa promete ser m&amp;#225;s que interesante.&lt;/p&gt;  &lt;p&gt;Link inscripci&amp;#243;n: &lt;a title="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032395190&amp;amp;Culture=es-ES" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032395190&amp;amp;Culture=es-ES"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032395190&amp;amp;Culture=es-ES&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="BcnDev: &amp;#161;&amp;#161;Conquista el mundo con Lego Mindstorms y Microsoft Robotics Studio!!" src="https://mseventsww.microsoft.com/BannerImages/c4466f5d-16db-44ec-a480-ebc808899ced.jpg" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;Saludos @ Barcelona&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12104" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Novedades en las capacidades de Branching en TFS 2010</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/08/12100.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/08/12100.aspx</id><published>2008-11-08T17:35:11Z</published><updated>2008-11-08T17:35:11Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;una de las grandes dudas cuando se trabaja con gestores de versiones de archivos, consiste en la gesti&amp;#243;n de los Branches. Hace un tiempo, escrib&amp;#237; &lt;a href="http://elbruno.com/blogs/elbruno/archive/2007/06/05/tfs-branching-en-3-pasos-faciles.aspx"&gt;algo al respecto&lt;/a&gt;, como un simple ABC; sin embargo creo que la mejor ayuda es la gu&amp;#237;a oficial disponible en CodePlex: &lt;a href="http://www.codeplex.com/BranchingGuidance"&gt;TFS Branching Guide&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Si bien es cierto que cada proyecto tiene sus propias caracter&amp;#237;sticas, que lo convierten en una implantaci&amp;#243;n &amp;#250;nica para una estrategia de Branch; existen algunos problemas comunes que se encuentran en casi todos los proyectos. Uno de ellos puede ser la organizaci&amp;#243;n que demos a nuestros Branches. (la utilizaci&amp;#243;n excesiva de branches puede transformar en un caso nuestra organizacion del Source Control).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; incorpora una serie de mejoras en el Source Control Explorer que nos pueden ayudar en este aspecto. El siguiente tutorial muestra como crear una jerarqu&amp;#237;a de Branch folders y como TFS2010 nos ayuda a trabajar con los mismos.&lt;/p&gt;  &lt;h3&gt;Tutorial&lt;/h3&gt;  &lt;p&gt;1. Seleccionamos un Source Control Folder [&lt;em&gt;$/DinnerNow/DemoTest-branch&lt;/em&gt;]; desplegamos el men&amp;#250; contextual y seleccionamos la opci&amp;#243;n &lt;em&gt;Branching and Merging // Convert Folder to Branch&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img442.imageshack.us/img442/8861/tfs01qg0.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. Esta acci&amp;#243;n cambia el aspecto visual del Source Control Folder y lo identifica como un Folder que se utiliza en acciones de Branch.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img442.imageshack.us/img442/3541/tfs02rw6.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3. Sobre el nodo seleccionado, con la opci&amp;#243;n &lt;em&gt;Branching and Merging // Branch&lt;/em&gt;, creamos una serie de Branches, con la siguiente estructura:&lt;/p&gt;  &lt;p&gt;- $/DinnerNow/DemoTest-branch [1]   &lt;br /&gt;- $/DinnerNow/DemoTest-branch-branch01 [2]    &lt;br /&gt;- $/DinnerNow/DemoTest-branch-branch01-branch01 [3]    &lt;br /&gt;- $/DinnerNow/DemoTest-branch-branch01-branch02 [4]    &lt;br /&gt;- $/DinnerNow/DemoTest-branch-branch02 [5]&lt;/p&gt;  &lt;p&gt;Donde los nodos [2] y [5] son Branches del nodo [1]; y los nodos [3] y [4] son Branches del nodo [2].&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img265.imageshack.us/img265/6361/tfs03uj3.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4. En este punto podemos comenzar a explorar las novedades de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;5. Una de las novedades es una representaci&amp;#243;n visual de las relaciones entre los diferentes Branches. Para ver la misma, seleccionamos el nodo principal, desplegamos el men&amp;#250; contextual y seleccionamos la opci&amp;#243;n &lt;em&gt;Branching and Merging // View Hierarchy&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img152.imageshack.us/img152/3402/tfs04lg6.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;6. En el &lt;strike&gt;DSL&lt;/strike&gt; visor de jerarqu&amp;#237;as podemos ver que se muestra el nodo principal y la relaci&amp;#243;n con sus 2 nodos relacionados.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img518.imageshack.us/img518/3686/tfs05hq1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;7. Seleccionando una de las opciones de la Toolbar podemos cambiar la vista para que muestre todos los niveles&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img517.imageshack.us/img517/4250/tfs06qh4.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Las opciones disponibles son las siguientes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;All Hierarchy&lt;/li&gt;    &lt;li&gt;Full hierarchy&lt;/li&gt;    &lt;li&gt;Ancestor and descentants&lt;/li&gt;    &lt;li&gt;Ancestor and children&lt;/li&gt;    &lt;li&gt;Ancestor&lt;/li&gt;    &lt;li&gt;Parent and descentants&lt;/li&gt;    &lt;li&gt;Parent and children&lt;/li&gt;    &lt;li&gt;Children&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;8. Finalmente para cada elemento del diagrama podemos ver una ventana extendida de propiedades donde adem&amp;#225;s de las propiedades de descripci&amp;#243;n y seguridad para elemento, tambi&amp;#233;n se puede representar la jerarqu&amp;#237;a de branches en modo Treeview.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img517.imageshack.us/img517/5576/tfs08br0.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12100" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[VS2010] Novedades en las Domain Specific Language Tools</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/06/12092.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/06/12092.aspx</id><published>2008-11-07T04:22:24Z</published><updated>2008-11-07T04:22:24Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;si bien es cierto que solo poseemos una CTP muy temprana de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;, la extensibilidad de Visual Studio es un tema sobre el que muchos nos hacemos algunas preguntas. En la CTP actual no se distribuye ning&amp;#250;n SDK o tutoriales para probar algunas nuevas caracter&amp;#237;sticas pero &lt;a href="http://blogs.msdn.com/stuart_kent/"&gt;Stuart Kent&lt;/a&gt; nos comenta un par de detalles interesantes en su blog. &lt;/p&gt;  &lt;p&gt;No espero traducir entero el post, pero si remarcar los puntos m&amp;#225;s interesantes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Los nuevos dise&amp;#241;adores incluidos en el perfil Team Architect se basan en parte en algunas mejoras incluidas en las nuevas DSL Tools.&lt;/li&gt;    &lt;li&gt;Finalmente parece que se han decidido un por una estrategia de &amp;quot;bibliotecas compartidas&amp;quot; para compartir informaci&amp;#243;n entre diferentes dominios.&lt;/li&gt;    &lt;li&gt;Con la nueva versi&amp;#243;n ser&amp;#225; posible extender modelos existentes de DSLs, una vez desplegados y distribuidos los mismos.&lt;/li&gt;    &lt;li&gt;Integraci&amp;#243;n con formularios WPF, mmm lo definen como &amp;quot;easily&amp;quot; ... aunque est&amp;#225; por verse.&lt;/li&gt;    &lt;li&gt;Precompilaci&amp;#243;n de modelos T4, simplemente genial.&lt;/li&gt;    &lt;li&gt;Modelbus, un canal de comunicaci&amp;#243;n para compartir informaci&amp;#243;n entre diferentes modelos.&lt;/li&gt;    &lt;li&gt;Y algunas mejoras menores de UI&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Fuente: &lt;a title="http://blogs.msdn.com/stuart_kent/archive/2008/11/05/dsl-tools-in-visual-studio-2010.aspx" href="http://blogs.msdn.com/stuart_kent/archive/2008/11/05/dsl-tools-in-visual-studio-2010.aspx"&gt;http://blogs.msdn.com/stuart_kent/archive/2008/11/05/dsl-tools-in-visual-studio-2010.aspx&lt;/a&gt;&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12092" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Sobre Workspaces, mapeos y alg&amp;amp;#250;n detalle interesante</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/05/12085.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/05/12085.aspx</id><published>2008-11-06T03:17:20Z</published><updated>2008-11-06T03:17:20Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;un problema frecuente cuando trabajas con Team Foundation Server consiste en definir diferentes mapeos o relaciones entre uno o m&amp;#225;s directorios virtuales del Source Control del TFS y uno o m&amp;#225;s directorios locales. Si no eres un poco organizado, puede darse el caso donde existan varias opciones posibles definidas para un &amp;#250;nico directorio virtual; y aqu&amp;#237; se comienzan complicar las acciones de &amp;quot;Get Latest&amp;quot; contra el servidor TFS.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; incorpora una peque&amp;#241;a validaci&amp;#243;n que nos avisa en el momento de definir un mapeo o asociaci&amp;#243;n, si la misma, puede causar problema con configuraciones ya existentes.&lt;/p&gt;  &lt;p&gt;Por ejemplo, supongamos el siguiente escenario, donde el directorio virtual &lt;strong&gt;&lt;em&gt;$/DinnerNow/Main&lt;/em&gt;&lt;/strong&gt; est&amp;#225; relacionado con el directorio local &lt;strong&gt;&lt;em&gt;C:\DinnerNow25\Solution&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img369.imageshack.us/img369/6627/tfs01fz7.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;y el directorio ra&amp;#237;z del Team Project (&lt;strong&gt;&lt;em&gt;$/DinnerNow&lt;/em&gt;&lt;/strong&gt;) no est&amp;#225; definido en ning&amp;#250;n mapeo.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img369.imageshack.us/img369/5123/tfs02up8.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Por lo general, mi experiencia me recomienda siempre definir los mapeos a nivel de Team Project y que despu&amp;#233;s se implementen jer&amp;#225;rquicamente las diferentes relaciones basadas en la estructura de directorio del Source Control. En este caso, para demostrar una nueva caracter&amp;#237;stica de &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; asignar&amp;#233; este mapeo al directorio local &lt;strong&gt;&lt;em&gt;C:\srcTfsSetup\DinnerNow&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Esto ocasionar&amp;#225; un conflicto ya que el directorio ra&amp;#237;z del Team Project, obligar&amp;#237;a al mapeo anterior a estar en la ubicaci&amp;#243;n &lt;strong&gt;&lt;em&gt;C:\srcTfsSetup\DinnerNow\Main&lt;/em&gt;&lt;/strong&gt; en lugar de &lt;strong&gt;&lt;em&gt;C:\DinnerNow25\Solution&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Como podemos ver en la siguiente imagen, despu&amp;#233;s de hacer click en el link &lt;em&gt;Not Mapped&lt;/em&gt;, nos aparece el formulario de mapeo que ya conocemos en Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img360.imageshack.us/img360/1460/tfs03ni1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Una vez completados los valores, cuando confirmamos la acci&amp;#243;n podemos ver que una nueva validaci&amp;#243;n nos propone eliminar todas aquellas relaciones o mapeos que interfieran con la definici&amp;#243;n que estamos tratando de definir. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://img356.imageshack.us/img356/3987/tfs04zd4.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lo dem&amp;#225;s ya es cuesti&amp;#243;n de ayudar un poco con la imaginaci&amp;#243;n, los mapeos inv&amp;#225;lidos se eliminan y nuestras asociaciones quedan con un m&amp;#237;nimo de organizaci&amp;#243;n, como se puede ver &lt;a href="http://img356.imageshack.us/img356/2865/tfs05zw6.jpg"&gt;aqu&amp;#237;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12085" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Utilizando carpetas para organizar WorkItems Queries</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/05/12083.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/05/12083.aspx</id><published>2008-11-05T13:37:22Z</published><updated>2008-11-05T13:37:22Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;hace unos d&amp;#237;as no pude resistir la tentaci&amp;#243;n y dej&amp;#233; de lado algunas novedades en el manejo de WorkItems en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; para comenzar a hablar de los nuevos dise&amp;#241;adores; pero hoy retomo el manejo de WorkItems con una de las nuevas incorporaciones que m&amp;#225;s me gustaron cuando la conoc&amp;#237; en su d&amp;#237;a:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;En &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; existe la capacidad de agregar carpetas en la carpeta WorkItems, para organizar dentro de las mismas nuestras WorkItems Queries.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Esto que parece una trivialidad, se convierte en una necesidad cuando la cantidad de consultas que utiliza el equipo de trabajo comienza a crecer indiscriminadamente. Por lo general, se asigna un prefijo a las consultas para definir &amp;quot;estas consultas son para de UAT&amp;quot;, &amp;quot;estas son para el equipo de QA&amp;quot;, etc.&lt;/p&gt;  &lt;p&gt;Ahora en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; esto se puede organizar de una forma mucho m&amp;#225;s elegante. En la siguiente imagen podemos ver que en el men&amp;#250; contextual del Team Explorer ahora tenemos una nueva opci&amp;#243;n que nos permite agregar una carpeta.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img87.imageshack.us/img87/6730/tfs01dq9.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En este caso para este ejemplo, he creado 2 nuevas carpetas, &lt;em&gt;Jupiter Queries&lt;/em&gt; y &lt;em&gt;Pluton Queries&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img232.imageshack.us/img232/8818/tfs02kz7.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Adicionalmente, podemos arrastrar carpetas entre los diferentes nodos, y copiar y pegar consultas entre diferentes carpetas.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img440.imageshack.us/img440/9070/tfs03ft1.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Obviamente las carpetas &lt;em&gt;My Queries&lt;/em&gt; y &lt;em&gt;Team Queries&lt;/em&gt; no se pueden modificar.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; si por curiosidad alguien quiere ver las propiedades de una consulta, podr&amp;#225; ver que la misma no cambia con respecto a la URI que posee, la definici&amp;#243;n y la ubicaci&amp;#243;n de las carpetas de consultas las gestiona el Server TFS y no las propiedades de la consulta.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ La Finca&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12083" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[VS2010] Diagramas de Secuencia</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/03/12072.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/03/12072.aspx</id><published>2008-11-04T03:53:24Z</published><updated>2008-11-04T03:53:24Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;seguimos con algunas de las novedades incluidas en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;, y en este caso quiero hablar de los nuevos diagramas de secuencia (&lt;a target="_blank" href="http://en.wikipedia.org/wiki/Sequence_diagram"&gt;Sequence Diagram&lt;/a&gt;) incluidos en esta versi&amp;#243;n. No soy un experto en UML, ni mucho menos, pero a lo largo del tiempo en alg&amp;#250;n proyecto me ha tocado crear este tipo de diagramas.&lt;/p&gt;  &lt;p&gt;El principal problema que encontraba en estos entornos, es que estos diagramas representan muy bien la interacci&amp;#243;n de elementos en un sistema, pero sol&amp;#237;an ser bastante tediosos de mantener ya que la integraci&amp;#243;n con las herramientas de desarrollo, siempre era &amp;quot;one way&amp;quot;.&lt;/p&gt;  &lt;p&gt;Pues bien, esto ha cambiado un poco en &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt;; y para muestra el siguiente ejemplo, donde muestro como crear un Diagrama de Secuencia a partir de c&amp;#243;digo y el proceso inverso.&lt;/p&gt;  &lt;h3&gt;Ejemplo&lt;/h3&gt;  &lt;p&gt;1. Suponer una clase de validaciones con el siguiente c&amp;#243;digo:&lt;/p&gt;  &lt;div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:0b5e15c0-a48f-456a-963c-e6f010c232a8" class="wlWriterSmartContent"&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt; 1&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; Validations
&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt; &lt;span&gt;  {
&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt; &lt;span&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; bool ValidateEMail(&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; eMailAddress)
&lt;/span&gt;&lt;span&gt; 4&lt;/span&gt; &lt;span&gt;    {
&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt; 6&lt;/span&gt; &lt;span&gt;    }
&lt;/span&gt;&lt;span&gt; 7&lt;/span&gt; &lt;span&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; bool ValidateAge(&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; age)
&lt;/span&gt;&lt;span&gt; 8&lt;/span&gt; &lt;span&gt;    {
&lt;/span&gt;&lt;span&gt; 9&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;true&lt;/span&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt;10&lt;/span&gt; &lt;span&gt;    }
&lt;/span&gt;&lt;span&gt;11&lt;/span&gt; &lt;span&gt;  }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; el objetivo de este post es dar un ejemplo de los diagramas as&amp;#237; que, amigos puristas, cero cr&amp;#237;ticas al c&amp;#243;digo :D&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;2. Adicionalmente, tenemos una clase que representa y permite crear un &lt;em&gt;Customer&lt;/em&gt;:&lt;/p&gt;

&lt;div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e29145e9-ef2a-4b18-8c4b-d20ceca065dc" class="wlWriterSmartContent"&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt; 1&lt;/span&gt; &lt;span&gt;  &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; Customer
&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt; &lt;span&gt;  {
&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt; &lt;span&gt;    &lt;/span&gt;&lt;span&gt;public&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; AddNewCustomer(&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; customerName, &lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt; customerEMail, &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; customerAge)
&lt;/span&gt;&lt;span&gt; 4&lt;/span&gt; &lt;span&gt;    {
&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt; customerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt; 6&lt;/span&gt; &lt;span&gt;
&lt;/span&gt;&lt;span&gt; 7&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;//&lt;/span&gt;&lt;span&gt; validate data&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt; 8&lt;/span&gt; &lt;span&gt;&lt;/span&gt;&lt;span&gt;      Validations validations &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt; Validations();
&lt;/span&gt;&lt;span&gt; 9&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (validations.ValidateEMail(customerEMail))
&lt;/span&gt;&lt;span&gt;10&lt;/span&gt; &lt;span&gt;      {
&lt;/span&gt;&lt;span&gt;11&lt;/span&gt; &lt;span&gt;        &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (validations.ValidateAge(customerAge))
&lt;/span&gt;&lt;span&gt;12&lt;/span&gt; &lt;span&gt;          customerId &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;;
&lt;/span&gt;&lt;span&gt;13&lt;/span&gt; &lt;span&gt;      }
&lt;/span&gt;&lt;span&gt;14&lt;/span&gt; &lt;span&gt;      &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; customerId;
&lt;/span&gt;&lt;span&gt;15&lt;/span&gt; &lt;span&gt;    }
&lt;/span&gt;&lt;span&gt;16&lt;/span&gt; &lt;span&gt;  }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Como se puede ver, en la funci&amp;#243;n para la creaci&amp;#243;n de un &lt;em&gt;Customer&lt;/em&gt;, se utiliza una de las funciones de la clase de validaci&amp;#243;n para validar si la direcci&amp;#243;n de mail es correcta (l&amp;#237;nea 9).&lt;/p&gt;

&lt;p&gt;3. Si queremos generar un diagrama de secuencia a partir de este c&amp;#243;digo, simplemente desplegamos el men&amp;#250; contextual sobre el editor de c&amp;#243;digo y seleccionamos la opci&amp;#243;n &lt;em&gt;Generate Sequence Diagram ..&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;&lt;img src="http://img79.imageshack.us/img79/5/tfs02pb2.jpg" /&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;4. Aceptamos todas las opciones por defecto&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img253.imageshack.us/img253/7848/tfs02ty1.jpg" /&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;5. Ya podemos visualizar el nuevo diagrama de secuencia.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://img79.imageshack.us/img79/3922/tfs03nu3.jpg" /&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;6. El diagrama est&amp;#225; generado y a partir de los cambios que realicemos podremos ver reflejados los mismos en nuestra soluci&amp;#243;n.&lt;/p&gt;

&lt;p&gt;Lamentablemente el &amp;quot;hola mundo&amp;quot; completo, con modificaciones realizadas en el diagrama para reflejarlos en nuestro c&amp;#243;digo no ha funcionado lo bien que quisiera como para animarme a postearlo en un paso a paso, sin embargo cuando cubra los dem&amp;#225;s dise&amp;#241;adores, podremos ver como utilizando el &lt;strong&gt;&lt;em&gt;Architecture Explorer&lt;/em&gt;&lt;/strong&gt;, las cosas se ponen un poco m&amp;#225;s interesantes.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos @ Home &lt;/p&gt;

&lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12072" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[TFS2010] Nuevas caracter&amp;amp;#237;sticas en las opciones de TFS</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/02/12071.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/02/12071.aspx</id><published>2008-11-03T04:14:31Z</published><updated>2008-11-03T04:14:31Z</updated><content type="html">&lt;p&gt;&lt;img src="https://connect.microsoft.com/visualstudio/siteimages/f2b64570-4956-4687-b2d7-58842cabbbe8.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Buenas,&lt;/p&gt;  &lt;p&gt;el d&amp;#237;a a d&amp;#237;a de trabajo con &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; me ense&amp;#241;a algunas cosillas muy &amp;#250;tiles sobre las nuevas tecnolog&amp;#237;as que incluye esta versi&amp;#243;n, pero tambi&amp;#233;n me muestra peque&amp;#241;os detalles que nos hacen el d&amp;#237;a m&amp;#225;s agradable.&lt;/p&gt;  &lt;p&gt;Por ejemplo, la siguiente imagen nos muestra las opciones que presenta &lt;a href="http://msdn.microsoft.com/en-us/vstudio/bb725993.aspx"&gt;Visual Studio Team System 2010&lt;/a&gt; en el men&amp;#250; &lt;em&gt;Tools // Options&lt;/em&gt;; con las opciones de Team Foundation Server 2010 para el IDE de Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://img399.imageshack.us/img399/5244/tfs01fc6.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;A simple vista, el formulario de opciones es igual que &lt;a target="_blank" href="http://img408.imageshack.us/img408/6078/tfs02la3.jpg"&gt;el que poseemos actualmente&lt;/a&gt; en &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/products/aa700830.aspx"&gt;Microsoft Visual Studio 2008&lt;/a&gt;; pero sin embargo la 3ra opci&amp;#243;n es algo que nos ayuda mucho: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Cada vez que abrimos el Source Control Explorer, el mismo se abre en el &amp;#250;ltimo directorio en el que est&amp;#225;bamos trabajando.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Esto que parece trivial, me parece algo bastante &amp;#250;til, ya que cuando tienes servidores TFS que se comparten entre varios equipos de trabajo, esto ocasiona que veas varios Team Projects, cada Team Project son su estructura propia de directorios y subdirectorios, etc.; en este tipo de escenarios, recordar el ultimo &amp;quot;path&amp;quot; es de gran ayuda.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home &lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12071" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry><entry><title>[Evento] MAD.NUG: Novedades de SQL Server 2008</title><link rel="alternate" type="text/html" href="http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/02/12070.aspx" /><id>http://blog.avanadeadvisor.com/blogs/elbruno/archive/2008/11/02/12070.aspx</id><published>2008-11-03T02:52:28Z</published><updated>2008-11-03T02:52:28Z</updated><content type="html">&lt;p&gt;&lt;a target="_blank" href="http://madriddotnet.spaces.live.com"&gt;&lt;img border="1" alt="" align="right" src="http://nu0omq.tuk.livefilestore.com/y1pLauhHPsNpMn11LvpSteWstLy5qiW_J6ATE-TC9T8OeI4tn01kuc5qg9e3_y2RUzha3DebUBJ2-kjhts3tkXN4peXiy_UuxXe/MADNUG.Logo.jpg" width="216" height="89" /&gt;&lt;/a&gt;Parece que fue ayer cuando Miguel nos cedi&amp;#243; el testigo del &lt;a target="_blank" href="http://madriddotnet.spaces.live.com"&gt;Grupo de usuarios de Madrid DotNet&lt;/a&gt;; sin embargo, un par de meses despu&amp;#233;s ya han pasado m&amp;#225;s de 5 eventos y la agenda siempre est&amp;#225; m&amp;#225;s que completa. Esto supone un poco de trabajo extra, pero tambi&amp;#233;n una gran alegr&amp;#237;a ya que vemos que en cada evento la gente se apunta y aunque sea un rato, lo pasamos bien.&lt;/p&gt;  &lt;p&gt;En el pr&amp;#243;ximo evento, la alegr&amp;#237;a es doble ya que por un lado el ponente es &lt;a href="http://geeks.ms/blogs/palvarez/"&gt;Pablo &amp;#193;lvarez Doval&lt;/a&gt;, y por otro es sobre un producto que creo que usamos todos los que tocamos tecnolog&amp;#237;a Microsoft: SQL Server, y en este caso SQL Server 2008.&lt;/p&gt;  &lt;p&gt;El por eso que el pr&amp;#243;ximo 6 de noviembre de 2008 de 19:00 a 21:00 horas, hemos organizado el siguiente evento:&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;&lt;a target="_blank" href="http://madriddotnet.spaces.live.com/blog/cns!6453107D41F04C68!165.entry"&gt;Novedades de SQL Server 2008&lt;/a&gt;&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;A pesar de que el lanzamiento de SQL Server 2008 se ha producido ya hace algunos meses, a&amp;#250;n son muchas las &amp;#225;reas oscuras del producto, el desconocimiento de sus nuevas caracter&amp;#237;sticas, mejoras, etc. Como ya sucediera con SQL Server 2005, y como con cualquier producto o tecnolog&amp;#237;a nueva, pasar&amp;#225; bastante tiempo hasta que asimilemos y empleemos con naturalidad las novedades, y pasen a formar parte de nuestro arsenal del d&amp;#237;a a d&amp;#237;a.&lt;/p&gt;  &lt;p&gt;En esta sesi&amp;#243;n vamos a dar un repaso a las novedades de SQL Server 2008: desde el desarrollo a la administraci&amp;#243;n, desde el motor de almacenamiento a Business Intelligence. Recorreremos algunas de las caracter&amp;#237;sticas m&amp;#225;s conocidas y, c&amp;#243;mo no, haremos hincapi&amp;#233; en las menos conocidas. Las aburridas PPTs de rigor ir&amp;#225;n acompa&amp;#241;adas de demostraciones pr&amp;#225;cticas sobre los nuevos tipos de datos, la MERGE, tablas como par&amp;#225;metros, optimizaci&amp;#243;n, y un poquito de administraci&amp;#243;n tambi&amp;#233;n.&lt;/p&gt;  &lt;p&gt;Por supuesto, la sesi&amp;#243;n contar&amp;#225; con su apartado de preguntas y respuestas, por lo que os animamos a que veng&amp;#225;is con vuestra bater&amp;#237;a de cuestiones preparadas desde casa para hacer tiro al blanco con el ponente.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Agenda&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1.- Introducci&amp;#243;n a SQL Server 2008   &lt;br /&gt;2.- Novedades para Desarrolladores    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Nuevos Tipos de Datos    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Datos espaciales    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Fechas y Horas    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; - Estructuras Jer&amp;#225;rquicas    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Operaci&amp;#243;n MERGE    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Mejoras al XML    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Mejoras a los tipos de CLR    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Otras mejoras: TVP, iFTS, Sync Framework    &lt;br /&gt;3.- Novedades de Administraci&amp;#243;n    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Policy-Based Administration    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Resource Governor    &lt;br /&gt;4.- Novedades del Motor de Almacenamiento    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Compresi&amp;#243;n de Datos    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Transparent Data Encryption    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Vardecimal    &lt;br /&gt;5.- Business Intelligence en SQL Server 2008-10-29    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Integration Services    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Reporting Services    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; - Analysis Services&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Saludos @ Home&lt;/p&gt;  &lt;p&gt;El Bruno&lt;/p&gt;
Crossposting from &lt;a href="http://elbruno.com"&gt;ElBruno.com&lt;/a&gt;&lt;img src="http://blog.avanadeadvisor.com/aggbug.aspx?PostID=12070" width="1" height="1"&gt;</content><author><name>elbruno</name><uri>http://blog.avanadeadvisor.com/members/elbruno.aspx</uri></author></entry></feed>