[TFS2010] Novedades para la edición de información con WorkItems

Buenas,

si bien es cierto que el tratamiento de WorkItems ha madurado mucho en Visual Studio Team System 2010, lamentablemente todavía no existe un SDK o un set de PowerTools para TFS que nos permita aprender de las novedades para la edición de información con en un WorkItem.

Es por eso que mientras sigo investigando la definición de un WorkItem a la vieja usanza, es decir, con un XML y el notepad; comentaré las 4 cosas que más llaman la atención.

Novedades para la Edición

– La nueva toolbar de edición de WorkItems incorpora los botones que ya comenté ayer agregar nuevos elementos relacionados, o relacionarlos con WorkItems existentes.

– Y, para remarcar una vez más la importancia de la guía de proceso, un acceso directo a la Process Guidance.

 

– Por fin, un editor de contenidos "rico" que permite ediciones con un poco de formato para los campos de texto en un WorkItem. En la siguiente imagen, una descripción de ejemplo:

 

– Obviamente, los comentarios que agregaremos en el histórico del WorkItem también soportan un formato enriquecido, y lo mismo para la visualización de cambios de un WorkItem.

 

– Finalmente mencionar que es posible agrupar las colecciones de WorkItems relacionados en diferentes grupos. Por ejemplo, para un WorkItem de tipo User Story, el mismo posee una para la implementación, otra para los Test Cases y otra para "otros". Cada panel permite editar el query para visualizar los WorkItems relacionados y además es posible configurar las columnas que se muestran en el formulario de edición. (dicho de otra forma, se ha "embebido un WorkItem Query Window" dentro de un WorkItem)

 

Definición de campos

Pero claro, hasta aquí solo podemos ver como se presenta un WorkItem; ¿pero que pasa dentro del mismo?. Pues después de ver un poco la definición, no han cambiado tanto (siguen siendo intuitivos). Tomemos como ejemplo el campo description, esta es la definición del mismo:

<FIELD name="Description" refname="Microsoft.VSTS.Shared.Description" type="HTML" > <HELPTEXT>Description or reference to the story that must work for this work to be considered complete.</HELPTEXT> </FIELD>

Como se puede apreciar, solo el tipo ha cambiado y poco más. Sin embargo la visualización del mismo tampoco ofrece muchas pistas:

<Column PercentWidth="100"> <Control FieldName="Microsoft.VSTS.Shared.Description" Type="HtmlFieldControl" Label="&amp;Description with Acceptance Criteria:" LabelPosition="Top" Dock="Fill" /> </Column>

con lo que comienzo a asumir que el editor de texto enriquecido viene por defecto para los campos de tipo HTML.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[TFS2010] Novedades en el WorkItem Query Window

Buenas,

el nuevo formulario para la visualización de consultas de WorkItems presenta algunas novedades muy interesantes. Se que algunos pensarán que la interfaz se ha sobrecargado, ya que pasamos de no tener opciones a tener demasiadas, pero creo que para la versión final se puede configurar este aspecto, este formulario será muy útil.

WorkItems List Toolbar

En primer lugar podemos ver que la toolbar superior ofrece algunas nuevas opciones muy interesantes.

 

  • Además de opciones de impresión, tenemos la capacidad de agregar a los WorkItems seleccionados nuevos elementos relacionados, o relacionarlos con WorkItems existentes.
  • Como comenté en el post anterior, si estamos analizando una vista con jerarquías, tenemos 2 nuevos botones que nos permiten expandir o colapsar el elemento seleccionado o todos los elementos de la lista.
  • Existe un nuevo botón que genera un informe en Microsoft Excel con el contenido de la lista
  • Y además existe una opción que nos permite exportar los WorkItems seleccionados a Microsoft Excel, MS Project o a un nuevo Query

Current WorkItem Toolbar

Existe además un panel que nos permite visualizar la información y el detalle del WorkItem seleccionado.

 

En la toolbar de este panel podemos encontrar las siguientes opciones:

  • El clásico Guardar, un botón refrescar, para cuando necesitamos refrescar el contenido del WorkItem y el botón de impresión.
  • Existen botones para agregar nuevos elementos relacionados, o relacionar el WorkItem seleccionado con WorkItems existentes.
  • Se ha agregado un botón de acceso directo a la Process Guidance (genial !!!)
  • Y el último dato interesante, son dos botones de navegación [Previous] y [Next]; que permiten navegar entre los WorkItems de la Query, como si del visor de eventos se tratara.

Extras … aunque no tan extras

Finalmente quiero comentar 2 detalles, que mejoran notablemente la usabilidad de este formulario.

En primer lugar se ha aumentado el tamaño del Splitter entre paneles. Esto que parece algo trivial, si estas trabajando con muchos nervios y después de varios litros de cafeína, el pulso te falla, así que si el Splitter es mas grande te ahorras un par de problemas.

 

Y finalmente, a la derecha del Splitter, existen 4 nuevos botones que nos ayudan a organizar la vista actual de la consulta.

  • [|] Define un split vertical entre los paneles.
  • [-] Define un split horizontal entre los paneles, esta es la opción por defecto.
  • [˅] Colapsa el panel de detalle del WorkItem, dejando a la vista solo el listado.
  • [˄] Colapsa el panel de listado de WorkItems, dejando a la vista solo el WorkItem seleccionado.

Probando un poco estas opciones podemos cambiar la orientación del split, para ver el listado y el detalle en modo horizontal. La siguiente imagen muestra este ejemplo, y además hay que remarcar como cambia el texto de los botones de acción de esta botonera.

 

O colapsar el detalle del WorkItem y mostrar solo el listado. Una vez más cambian las opciones de la botonera.

 

Como comenté al principio, pasamos de tener poco a tener demasiado. Personalmente prefiero que sobre y no que falte, aunque hecho en falta algunas opciones de personalización para lograr un poco más de potencia.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[TFS2010] Nuevas opciones para las relaciones entre WorkItems

Buenas,

si alguna vez has tenido que explicarle a un Jefe de Proyecto como funciona la integración de MS Project y Team Foundation Server, seguramente en algún momento alguien te habrá preguntado si cuando se definen tareas en Project es posible respetar la relación que existe entre las mismas a nivel dependencia. La respuesta es que Project solo presenta una vista de las tareas de TFS, pero que además de modificar los valores de los WorkItems como fecha inicio, fecha fin, progreso, etc.; lo demás es solo organización y presentación de información de TFS.

Si bien en versiones previas de TFS teníamos la capacidad de relacionar diferentes tipos de WorkItems entre sí, no existían herramientas que nos permitan visualizar esta información para poder aprovecharla y explotarla (en realidad no existe dentro de VS, pero 3ras partes han creado AddIns muy buenos).

Utilizando Visual Studio Team System 2010 podemos aprovechar y explotar un poco más esta información ya que las en relaciones entre WorkItems se puede especificar el tipo de relación.

Los siguientes pasos demuestran como crear un User Story y relacionar al mismo dos Tasks con precedencia entre ambas. Y además como crear diferentes vistas para interpretar esta información.

 

Tutorial

1. Como se demuestra en la siguiente imagen, seleccionamos desde una lista un WorkItem de tipo User Story (267 – Sample User Story 01)

2. Si desplegamos el menú contextual sobre este elemento, veremos que la opción de agregar un elemento relacionado sigue existiendo: Add New Linked WorkItem.

 

3. Sin embargo, al momento de crear un nuevo elemento podremos ver que ahora tenemos la opción de definir el tipo de relación :

  • Child
  • Parent
  • Predecesor
  • Related
  • Successor
  • Tested By
  • Tests

y además un formulario bastante intuitivo donde se previsualizará una imagen con el tipo de relación.

 

4. Para este ejemplo creamos una tarea "Child" llamada "Create Sample Story Part 01", que se crea con el ID: 268

 

5. Posteriormente creamos una nueva tarea llamada "Create Sample Story Part 02". Y la relacionamos a la tarea anterior, pero en este caso definimos que la tarea "Create Sample Story Part 01" es anterior a la tarea "Create Sample Story Part 02".

 

6. En este punto tenemos 3 nuevos WorkItems creados y relacionados entre sí. Visual Studio Team System 2010 nos permite visualizar este tipo de relaciones de una manera más simple ya que incorpora nuevas características en la edición de Queries de Work Items.

7. Si creamos un nuevo Query, podremos ver que además del clásico editor de Queries; una de las nuevas opciones que disponemos es la forma en la que se presentarán los WorkItems en la ventana de resultados:

  • Flat List of Work Items
  • Work Items and Direct Links
  • Tree of Work Items

 

Vista en modo árbol

8. Si optamos por la opción de Tree of Work Items, podremos ver las relaciones entre el User Story y las Tasks en forma gráfica y jerárquica

9. En la toolbar existen nuevos botones para nuevas acciones (tema de otro post) pero en este caso, los botones [+] y [-] permiten colapsar y expandir todos los elementos de manera conjunta para poder tener una mejor vista de las relaciones entre los WorkItems.

 

Vista en Modo Relación

10. Si cambiamos la vista por Work Items and Direct Links, podremos ver para cada WorkItem los elementos relacionados al mismo.

11. En este modo, dentro del editor de Queries aparece una nueva sección donde podremos definir:

  • Un filtro para limitar los elementos relacionados que se visualizarán.
  • El nivel de elementos que queremos visualizar.
  • Los diferentes tipos de relación a visualizar.

 

12. En este modo, el listado mostrará los 3 WorkItems, con sus correspondientes relaciones y el tipo de relación de cada elemento.

 

Saludos @ Here

El Bruno

Crossposting from ElBruno.com

[VS2010] Por fin nos dejan postear y a prepararse porque hay mucho contenido

Buenas,

como bien comenta el amigo Luis en su blog, desde hoy esta disponible para descarga una VPC con una demo completa de Visual Studio Team System 2010. Desde hace algún tiempo esta VPC está en mis manos y la verdad es que me estaba comiendo los dedos hasta los codos estaba esperando que llegue el PDC para poder comenzar a postear sobre la misma.

No creo que haga falta apuntar las novedades pero me venía preparando desde hace unos días, estos son algunos de los temas de los próximos posts:

  • Por fin, un sistema orientado al Testing que evita errores comunes y elimina el clásico "en mi máquina funciona".
    • Este sistema permite la generación de vídeos u otro tipo de soporte para poder reproducir los errores
    • Además acompaña cada test con información de contexto, información de datos, gestión de estados, etc.
  • Análisis de Impacto (test impact Analysis), excelente feature que permite evaluar que prueba unitarias han sido afectadas por los cambios en el código y de esta forma minimizar el tiempo de ejecución de los tests.
  • Gated Checkins, un sistema "novedoso" de protección de archivos que realiza una compilación previa antes de dar por válido un archivo para una acción de CheckIn.
  • Diagramas de Arquitectura, permiten describir la arquitectura de una solución desde diferentes aspectos.
    • Descripción orientada a layers y clases
    • Sincronización online con los archivos de código
    • Diagrama de validación de dependencias en tiempo real, que permite evaluar las excepciones en la arquitectura.
    • Diagrama "interactivo" de dependencia entre clases.
    • Diagramas UML, me reservo la opinión, pero igualmente postearé al respecto.
  • Pruebas unitarias para la interfaz de usuario que permiten ser "grabadas" y luego reproducidas. Esto permite la automatización de pruebas de UI
  • Nuevo editor de Builds gráfico … seguramente el amigo Rodrigo y muchos otros estarán muy contentos con este editor (el más feliz es el que escribe)
  • More …

Y mucho más, así que a partir de mañana, un post al día de Visual Studio Team System 2010.

Antes que me olvide, algunos links de interés:

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[NET] DataVisualization.Charting.Chart: Controles para crear gráficos en .Net

Buenas,

si alguna vez has tenido que agregar capacidades para crear gráficos en alguna aplicación, seguramente habrás optado por pasarle el marrón a otra persona tenido que sufrir a MSChart. Por lo general, una de las opciones más comunes era comprar una biblioteca de clases de otras empresas, o agregar la clásica y popular funcionalidad de exportar a Excel;desde donde nuestros queridos y expertos usuarios podrán crear los gráficos que necesiten.

Desde hace un tiempo existe una biblioteca de clases para .Net que nos pueden ayudar en este tipo de escenarios: Microsoft Chart Controls. Estos links nos pueden ayudar a comenzar a utilizarla:

 

Como por lo general me gusta probar un poco algo antes de postearlo, me cree una pequeña aplicación con un Chart en un formulario; he aquí mis apuntes.

1. En primer lugar, he agregado un control del tipo DataVisualization.Charting.Chart, al formulario principal de la aplicación.

2. como no tengo ganas de agregar datos a mano, he creado la siguiente función que crea una serie con 5 datos en forma aleatoria.

1 ''' <summary> 2 ''' Gets the random series. 3 ''' </summary> 4 ''' <param name="name">The name.</param> 5 ''' <returns></returns> 6 Public Function GetRandomSeries(ByVal name As String) As Series 7 Dim returnSeries As New Series(name) 8 Dim rnd As New Random() 9 For index As Integer = 1 To 5 10 returnSeries.Points.Add(rnd.Next(0, 100)) 11 Next 12 Return returnSeries 13 End Function

2. A continuación, para crear un gráfico simple de barras con 2 series, en el evento Load() del form, agrego las siguientes líneas

1 ' crear y agregar el chart area 2 Dim chartArea1 As New ChartArea("ChartArea1") 3 chartViewer.ChartAreas.Add(chartArea1) 4 ' añadir datos 5 chartViewer.Series.Add(GetRandomSeries("serie 1")) 6 chartViewer.Series.Add(GetRandomSeries("serie 2"))

y podemos ver un gráfico como el de la siguiente imagen.

 

3. Si agrego 2 series más de datos, con el siguiente código

1 ' crear y agregar el chart area 2 Dim chartArea1 As New ChartArea("ChartArea1") 3 chartViewer.ChartAreas.Add(chartArea1) 4 ' añdir datos 5 chartViewer.Series.Add(GetRandomSeries("serie 1")) 6 chartViewer.Series.Add(GetRandomSeries("serie 2")) 7 chartViewer.Series.Add(GetRandomSeries("serie 3")) 8 chartViewer.Series.Add(GetRandomSeries("serie 4"))

el gráfico muestra un nuevo set de datos

4. Si por ejemplo, deseo organizar las series de datos en 2 áreas separadas, y agregar un titulo con formato al Chart, el siguiente código lo hace posible

1 ' crear y agregar el chart area 2 Dim chartArea1 As New ChartArea("ChartArea1") 3 Dim chartArea2 As New ChartArea("ChartArea2") 4 chartViewer.ChartAreas.Add(chartArea1) 5 chartViewer.ChartAreas.Add(chartArea2) 6 7 ' añadir datos 8 chartViewer.Series.Add(GetRandomSeries("serie 1")) 9 chartViewer.Series.Add(GetRandomSeries("serie 2")) 10 chartViewer.Series.Add(GetRandomSeries("serie 3")) 11 chartViewer.Series.Add(GetRandomSeries("serie 4")) 12 13 chartViewer.Series(0).ChartArea = "ChartArea1" 14 chartViewer.Series(1).ChartArea = "ChartArea1" 15 chartViewer.Series(2).ChartArea = "ChartArea2" 16 chartViewer.Series(3).ChartArea = "ChartArea2" 17 18 ' apariencia del char 19 Dim titleChart As Title = chartViewer.Titles.Add("Titulo del chart") 20 titleChart.ForeColor = Color.Blue 21 titleChart.Font = New Font(titleChart.Font, FontStyle.Bold) 22 titleChart.TextStyle = TextStyle.Shadow

y el gráfico se divide en "2 gráficos" con un título en la sección superior.

5. Finalmente si quiero mostrar una de las secciones del Chart, en barras 3D, debo modificar una de las ChartArea

1 ' 3D charts 2 chartArea1.Area3DStyle.Enable3D = True 3 chartArea2.Area3DStyle.Enable3D = False

y el gráfico queda como en la siguiente imagen.

 

En pocos pasos he creado un gráfico que se adapta a lo que estaba necesitando por estos días. Pero además de tener capacidades para graficar en aplicaciones Windows, las librerías también son para ASP.Net, con lo que realmente conviene echarles un vistazo, en el caso de que tengamos que crear Chart.

Descarga el ejemplo:

 http://cid-bef06dffdb192125.skydrive.live.com/self.aspx/Code%20Samples/2008%2010%2027%20-%20DemoChart.zip

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[TFS2008] TFS October PowerTools, pues para Noviembre

Buenas,

si como yo estás esperando el final de Octubre para cobrar la nómina y probar las nuevas Team Foundation Server 2008 October Power Tools; tengo que darte una mala noticia: las Power Tools de Octubre se lanzarán en Noviembre

Después de una pequeña prueba interna con algunos MVPs, se han encontrado algunos errores bastante importantes que merecen la pena ser solucionados antes de la Release final y es por este motivo que deberemos esperar un par de semanas más.

Brian nos cuenta el detalle por aquí y realmente agradezco la decisión porque después de leer algunas experiencias, me parece que lanzarlo era un poco apresurado.

Pues bien, deberemos esperar un poco más, pero creo (y esta vez podría asegurarlo) que vale la pena.

 

Saludos @ Gear of Wars

El Bruno

Crossposting from ElBruno.com

[NET] Sobre fechas y números que se dan vuelta, o que cambian el punto por la coma

Buenas,

cada tanto recuerdo mis primeros días en la informática allá por el 1999, cuando descubría el placer de Visual Basic 6, ASP, los componentes COM+, SQL Server, etc. En esos días, mi trabajo era 100% developer en un producto de Workflow, y recuerdo cuando con Suin y el Iteya, uno programaba las paginas ASP, otro los componentes COM+ y yo lo enganchaba al Workflow. Después de noches eternas tirando líneas y líneas (donde una coca cola con café era el alimento indispensable) muchas cosas me quedaron bastante claras, entre ellas que las fechas se deben tratar con tipos de dato DateTime y lo mismo aplica para los números.

Hoy 9 años después, a los 3 la vida nos llevó por diferentes caminos; uno es dueño de una empresa con un producto impresionante (pocas veces vi algo tan groso con WF), otro lidera un equipo de desarrollo en una empresa que no puedo nombrar (porque es muy grande) y yo … bueno yo escribo en www.elBruno.com.

Sin embargo, creo que a los 3 las siguientes frases nos ponen de muy mal humor:

– se me dio vuelta la fecha

– el número no me toma la coma, solo funciona con puntos

Me parece increíble que actualmente (año 2008 para futuras referencias) todavía existan personas que no se tomen 30 minutos para leer como funcionan las Cultures de .Net o que piensen que la mejor forma de escribir una función para validar un número es la siguiente:

private bool IsNumeric(string text) { return System.Text.RegularExpressions.Regex.IsMatch(text, @"^d+(.d+)?$"); }

Como sé que es una misión imposible, y que la gente seguirá por el mal camino; para todos aquellos que seguirán tratando a las fechas y a los números con strings, tengo 3 consejos:

1. En primer lugar informar/taladrar/advertir/notificar que la coma no es el único carácter para separar decimales, y que en algunos países, por cuestiones muy extrañas, la fecha puede tener un formato del tipo: mes/día/año (esto no se debe a cuestiones místicas relacionadas con la posición de los planetas, ni tampoco la solución consiste en degollar un gallo virgen y derramar su sangre un martes 13 sobre un ordenador amarillo; las cosas simplemente son así)

2. Por favor, no complicarse la vida con funciones extrañas para averiguar cuál es el carácter para separar decimales.

A esa excelente idea que consiste en dividir un número por dos, guardarlo en un string y buscar el 2do carácter; se la puede reemplazar por el uso de la biblioteca NumberFormat y averiguar muchas cosas más con menos. Por ejemplo para averiguar el separador de decimales, o el signo para los número negativos es posible utilizar el siguiente código:

NumberFormatInfo numberFormatInfo = System.Globalization.CultureInfo.CurrentCulture.NumberFormat; string decimalSeparator = numberFormatInfo.NumberDecimalSeparator; string groupSeparator = numberFormatInfo.NumberGroupSeparator; string negativeSign = numberFormatInfo.NegativeSign;

3. Finalmente, si alguna vez nos cruzamos en un proyecto y tienes alguna "excusa" para utilizar strings, por favor dímelo. Después de 9 años, sigo escuchando las cosas más inverosímiles que me sorprenden y me alegran el día.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[TFS2008] HowTo: Eliminar un mapeo de un Workspace en 2 Clicks

Buenas

si ayer explicaba como realizar un mapeo de Workspaces en 2 Clicks, hoy trataré de explicar el proceso inverso que es eliminar un mapeo de un Team Project o un directorio del mismo, con un directorio local.

1. Seleccionar un Team Project o un directorio del mismo, y desplegar el menú contextual de Microsoft Visual Studio 2008; seleccionar la opción Remove Mapping.

 

2. En el formulario de eliminación del mapeo, verificar el Server Folder y el Local Folder y presionar el botón Remove Mapping.

 

3. El mapeo ha sido eliminado y ya podemos ver nuevamente el Link "not mapped"

 

Saludos @

El Bruno

Crossposting from ElBruno.com

[TFS2008] HowTo: Mapear un Workspace en 2 Clicks

Buenas,

si como a mi no te gusta mucho el tener que hacer 25 pasos para definir los mapeos de directorios en un Workspace en el Source Control Explorer de Team Foundation Server 2008, la llegada del Service Pack 1 de TFS 2008 te facilita bastante la vida.

Porque tan solo seleccionando el Team Project, o el folder dentro del Team Project sobre el que queremos trabajar debemos:

1. Hacer click en el Link "not mapped"

 

2. Definir la ubicación física del directorio de mapeo local

 

3. Listo, el mapeo del directorio se ha completado dentro del Workspace actual, y además el link ahora nos permite ir en un sólo click al directorio local (cosa que siempre se agradece)

 

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[MSDN] MSDN en Español lista para descargar

Buenas,

un poco tarde me llega la noticia, pero como la necesidad llega también a destiempo, recién ahora me entero que ya está disponible una nueva versión de la la ayuda de MSDN que incluye los cambios del Service Pack 1 para Microsoft Visual Studio 2008 y Team Foundation Server 2008.

Además en esta versión se han incluido varios lenguajes adicionales además del clásico y popular English que es el que viene por defecto. Por ejemplo la versión en Español se puede descargar desde:

http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com