[VSTS2010] Nueva ventana de búsqueda (ahora un poco más inteligente)

Buenas,

esta es una de las herramientas que aquellos que utilizamos ReSharper, agradecemos que esté en Visual Studio Team System 2010. Se trata de un nuevo buscador inteligente integrado en el IDE de Visual Studio que realiza búsquedas sobre los elementos de nuestro proyecto.

El mismo se activa con la combinación CTRL+, y lo primero que podemos ver es una ventana en blanco:

 

Donde al momento de ir tecleando, aparecerán los elementos que coincidan con nuestro criterio de búsqueda. Por ejemplo, después de poner la letra a, vemos que nos aparecen 2 funciones y 2 archivos dentro de nuestra solución.

 

Si refinamos un poco más la búsqueda, con el texto Add, veremos que solo quedan las funciones que comienzan con ese texo.

 

Finalmente, podemos hacer búsquedas con pequeñas expresiones regurales, como por ejemplo todo lo que comience con Add y termine con Te: Add*Te

    

 

No hace falta decir que si hacemos doble click sobre alguno de los elementos que aparecen en el formulario de búsqueda, automáticamente podremos ir a los mismos en el IDE.

Pues ha llegado un poco tarde, pero ha llegado 😀

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[VSTS2010] Listado de novedades (II)

Buenas,

como ya he hablado un poco sobre varias novedades de Visual Studio Team System 2010, creo que es momento de recopilar las mismas en un pequeño listado (que nuestros amigos de habla inglesa seguramente titularían “What’s new in Visual Studio Team System 2010”)

WorkItems

Source Control

TFS Build

Herramientas de Modelado

Visual Studio

Visual Studio Test

Varios

 

Como todavía queda mucho material por comentar y muchos posts por crear, actualizaré este listado periódicamente.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[VSTS2010] Novedades para el trabajo con XSD

Buenas,

salvo en determinados escenarios, hoy el trabajo con XML se ha convertido en una constante para la mayoría de los desarrolladores. En este punto, las herramientas que incopora Microsoft Visual Studio 2008 son útiles pero es posible mejorarlas bastante. Visual Studio Team System 2010 incopora algunas novedades al respecto, pero comparados con productos de otras empresas todavía tiene mucho que mejorar.

Hoy le echaremos un vistazo al nuevo Schema Explorer y para basarnos en un ejemplo real, que mejor que traer un schema de la competencia y trabajar con el mismo; el schema en cuestion se puede descargar desde http://www.cduce.org/manual_schema_samples.html. A continuación un pequeño paso a paso para recorrer algunas de las novedades incorporadas en esta versión.

 

Tutorial

1. Una vez descargado el schema abrir el mismo desde Visual Studio Team System 2010 con el menú File // Open // File.

2. Podemos ver que además del panel XML Schema Explorer, dentro del IDE de VS existe un nuevo visor basado en WPF que nos permite inspeccionar de una manera un poco más amigable nuestro Schema XSD.

 

3. Dentro del panel XML Schema Explorer podemos ver que tenemos la opción de organizar los elementos del Schema de acuerdo a algun tipo de criterio: por nombre, por tipo o por el orden original del documento. Además de la opción de mostrar u ocultar los namespaces y los archivos.

 

3. Un detalle interesante es la capacidad buscar dentro del panel de una forma muy ràpida. Por ejemplo, podemos ingresar un texto de búsqueda y los elementos que coincidan con esta búsqueda dentro del schema, se resaltan con un color diferente.

 

4.  Dentro del nuevo visor, podemos ver una vista principal donde se muestran datos de alto nivel del schema como la cantidad de elementos globales, tipos simples y complejos. Existe además una sección superior, donde se presentan un par de ayudas para poder comenzar.

 

5. Existen además 2 nuevas vistas “Content Model View” y ”Graph View”; donde es posible ver los diferentes elementos del Schema en un modo gráfico, e ir analizando los diferentes elementos del schema. Por defecto estas vistas están vacías, es posible arrastrar elementos desde el panel XML Schema Explorer o incoporar desde elementos ya agregados.

 

6. Finalmente en la sección inferior podemos ver un pequeño “navegador” que nos muestra el rastro de migas del elemento seleccionado. Además, para ser un poco más ágiles, desde esta vista es posible volver al XML Schema Explorer, pasar al modo gráfico o ver el código xsd del mismo en el visor stándar de XML del IDE de Visual Studio.

 

En pocas palabras, el nuevo visor promete y bastante, ya que por ejemplo, frente a Schemas muy complejos podemos personalizar una o más vistas con los elementos que deseamos para tener un vistazo general de la estructura de un Schema.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[VSTS2010] Novedades en el IDE que nos permiten ser TDD Compliant

Buenas

ya bastante tiempo escribí sobre como aprovechar a Microsoft Visual Studio 2008 y Team Foundation Server 2008 para realizar acciones de Integración Continua y acercarnos un poco a Test Driven Development. Lamentablemente, el IDE de Microsoft Visual Studio 2008 carecía de algunas herramientas para poder trabajar en un modo TDD al 100%.

Visual Studio Team System 2010 incorpora muchas novedades y entre ellas la capacidad de trabajar en un contexto dirigido por pruebas. El siguiente ejemplo, muestra de una forma muy simple como podemos aprovechar las nuevas capacidades del IDE para alcanzar este objetivo.

Tutorial

1. En primer lugar creamos un proyecto de Test. Para este ejemplo, he escogido C# 4.0 como lenguaje y lo he llamado DemoTestProject

 

2. Este proyecto se crea inicialmente con una clase llamada UnitTest1.cs a la que renombraremos por CustomerManagerTest.cs.

3. A continuación dentro de la clase CustomerManagerTest.cs renombraremos el test TestMethod1 por TestValidateCustomerAddress.

[TestMethod] public void TestValidateCustomerAddress() { // // TODO: Add test logic here // }

4. Lo siguiente que necesitamos en nuestro test es crear un objeto de un tipo que todavía no existe, supongamos que deseamos una clase para validaciones de cliente llamada CustomerValidation. Como podemos ver en la siguiente imagen, al no existir esta clase, obviamente el compilador nos muestra un error.

 

5. Es en este punto donde el nuevo IDE nos comienza a ayudar un poco, ya que si notamos el smartTag que nos aparece debajo del error podremos ver las siguientes opciones (para mostrar las opciones podemos utilizar la combinacion CTRL+.)

 

6. Donde la opción [Generate Class for CustomerValidation] generará una clase llamada CustomerValidation dentro del proyecto actual, y la 2da opción [Generate Other…] nos permite seleccionar otro tipo de opciones.

 

7. Lamentablemente en esta release todavía no nos permiten seleccionar una opción al estilo “New Project in C#”, para crear la clase dentro del mismo. Asi que sin elegir ninguna opción crearemos un nuevo proyecto de tipo biblioteca de clases en C# llamado DemoTest y volviendo a nuestro test podremos ver que ya tenemos la opción de agregar la clase dentro del nuevo proyecto.

 

8. Una vez generada la clase, automáticamente se agrega la referencia al nuevo proyecto en nuestro proyecto de test y ya podremos ver que nuestro código compila correctamente. Pero esto no es todo, si seguimos nuestro ejemplo, donde nuestra prueba debe validar una dirección de mail, tal vez querramos agregar un código similar al siguiente:

 

9. Como vemos que el mismo no compila, podemos volver a la opcion CTRL+. para desplegar el menu de opciones y de esta forma automáticamente generar la implementación de la función que queremos testear.

 

10. Finalmente, una vez implementado, podremos ver que nuestro test ya compila correctamente y que por otra parte tenemos generada la “interfaz inicial” que nos permite seguir escribiendo nuestras pruebas.

 

Saludos @ Here

El Bruno

Crossposting from ElBruno.com

[TFS2008] Posts y HowTos sobre Team Foundation Server 2008 y 2005

Buenas,

pequeño post recopilatorio con los posts, HowTos, posts sobre informes, builds, etc. sobre Team Foundation Server 2008 principalmente aunque algunos son comunes para Team Foundation Server 2005:

How To

Herramientas

Team System Web Access

TFS Errors

TFS Build

TFS WareHouse e Informes

Varios

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[VSTS2010] Nuevos set de reglas predefinidos y personalizados para el Code Analysis (archivos .ruleset !!!)

Buenas,

desde los tiempos de FxCop, aplicar reglas de análisis de código a nuestros proyectos siempre ha sido una buena idea. Con Microsoft Visual Studio 2008 y Team Foundation Server 2008 se solucionaron un par de problemas, ya que se podían definir set de reglas a nivel de Team Project, pero sin embargo seguía siendo un poco fastidioso el tener que armar estas colecciones de reglas (popularmente conocidos como RuleSet).

Visual Studio Team System 2010 nos ofrece nuevas posibilidades al respecto, donde una vez más, no se cambia el proceso; pero si la forma de trabajar. El siguiente ejemplo muestra algunas novedades incluidas en esta CTP relacionadas con la configuración y definición de RuleSet.

Ejemplo

1. La siguiente imagen muestra la ventana de propiedades de un proyecto en Visual Studio Team System 2010, en la pestaña de Code Analysis.

 

2. En el combo de opciones, tenemos la opción de seleccionar un archivo de reglas desde nuestro disco, o utilizar alguno de los distribuidos out of the box con Visual Studio.

Esta opción es una de las más interesantes ya que de esta forma, podemos asociar de una forma simple y rápida nuestros proyectos a un set de reglas contenido en un archivo.

 

3. El formulario de creacion de RuleSets, es también otra novedad e incluye varias novedades interesantes. Por ejemplo, la siguiente imagen muestra la edicion de un archivo llamado MyRuleSet.ruleset.

 

4. En la imagen se puede ver que en la edicion es posible agrupar por Id, Categoría, Nombre, Namespace, etc; además pudiendo aplicar un filtro de texto sobre el nombre de la regla

 

5. También es posible mostrar/ocultar las diferentes reglas de análisis, de acuerdo al nivel de tratamiento de las mismas: Error, Warning o None.

Adicionalmente, se ha incluido una opción muy interesante que permite mostrar solo las reglas de análisis de código que apliquen al tipo de proyecto sobre el que estamos trabajando. De esta manera, si estamos trabajando en un proyecto de Mobile, no veremos reglas que no corresponden.

 

6. Finalmente mencionar, que existe una posibilidad un tanto peligrosa delicada que nos permite crear un set de reglas, a partir de otros set de reglas existentes, y que pueden dar lugar a los clásicos includes que tanto sufrimos en ASP. Pero que con cuidado y paciencia seguro que nos dan excelentes resultados

 

 

 

 

Saludos @ Here

El Bruno

Crossposting from ElBruno.com

[TFS2010] TFSBuild, seleccionando las soluciones y set de pruebas a incluir en una Build (the easy way)

Buenas,

ayer comentaba sobre lo útil y práctico que es el nuevo editor de actividades para los proyectos de Build incluido en Visual Studio Team System 2010. Como lo mejor es dejar un par de pruebas del mismo, se me ocurrió que lo más simple es demostrar como ha cambiado el modelo, con dos tareas de las más comunes en un Build: selección de proyectos a compilar y de pruebas a ejecutar.

Ejemplo

1. No entraré en los pasos básicos de la creación de un proyecto de Build, ya que salvo la novedad de los Gated CheckIns, los siguientes formularios no han cambiado mucho.

Free Image Hosting at www.ImageShack.us 

2. En el paso de la definición del proceso, la selección de los proyectos y de las pruebas se realiza desde la ventana de propiedades de la actividad principal del proceso.

Adicionalmente se nos recuerda, que debemos seleccionar los mismos con pequeños links a estas propiedades

 

3. Cambiando un poco el modelo anterior, donde los paths eran relativos al sitio de ejecución del Build, en este caso la selección de las soluciones se realiza a través de un selector que permite navegar la estructura de directorios definida en el Source Control.

De esta forma, agregar uno o N soluciones, se convierte en una tarea trivial.

 

4. La selección de las listas de Tests a ejecutar, también se aprovechan de estas nuevas herramientas y la selección de una lista (que no es más que un archivo .vsmdi) se realiza con el asistente.

Sin embargo, si analizamos un poco el proceso y la información contenida en este archivo, tal vez necesitemos explotar un poco más el mismo, incluyendo solo algunas listas de tests específicas y en un orden determinado. Pues bien, el asistente nos permite importar el detalle de los archivos .vsmdi y organizar el mismo a nuestro antojo.

 

Como hemos visto en las imágenes anteriores, el proceso de definición de proyectos de Build se simplifica muchísimo. Y si bien es cierto que muchas de estas actividades, se pueden realizar actualmente con paciencia y un Notepad, yo si el editor es gráfico –> mejor !!!

 

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[TFS2010] TFSBuild, editor gráfico de los pasos de un Build

Buenas,

ya he comentado muchas de las novedades de Visual Studio Team System 2010, pero sin embargo esta es una de las que más me impactó cuando la vi por primera vez allá por Abril.

Antes de comentarla, un poco de historia. Si alguna vez has tenido que sufrir la edición de un Build, seguramente has llegado al punto de conocer el fabuloso xml que describe los targets y actions de un proyecto de Build. Cuando un Build es algo simple y trivial, el asistente de Visual Studio es suficiente, pero cuando quieres salirte un poco del molde, no queda más opción que editar en modo texto plano la definición del Build (tarea bastante tediosa y poco aconsejable para días con poca lucidez)

Por suerte Visual Studio Team System 2010 soluciona parcialmente este problema incoporando un editor para la definición de un proyecto de Build, que al ser un Build un proyecto secuencial de pasos se basa en Workflow Foundation.

Como se puede ver en la siguiente imagen, en la sección Process de la definición de un Build, ahora podemos ver las siguientes secciones:

  1. Editor de actividades
    Soportado internamente en WF, con una interfaz basad en un treeview.
  2. Toolbox con las actividades
    Contiene las actividades soportadas para el WorkFlow. Obviamente, los elementos de esta toolbox son extensibles y podremos crear nuestras tareas personalizadas.
  3. Visor de propiedades
    El clásico y popular editor de propiedades, siempre útil para editar y configurar cada una de las actividades del proceso.

 

Si miramos un poco más el detalle de ejecución de un proyecto de Build, expandiendo las actividades que lo comprenden, podremos ver que los pasos que sigue son similares que en la versión actual (hasta donde recuerdo, la definición de los Targets se respeta en 2010)

La siguiente imagen, muestra como una vez ejecutada la actividad que crea el Label correspondiente al Build, se compila el código de todos los proyectos, se obtienen los tests de impacto y se ejecutan esos tests. Expandiendo cada una de las actividades podemos ver el detalle de las mismas, o dicho de otra forma, las actividades inferiores que las componen.

e

 

Seleccionando una Actividad podemos ver las propiedades de la misma. Junto con el set de propiedades que corresponden a las actividades “hijas”. La siguiente imagen muestra las propiedades de la actividad Get Impacted Tests.

 

 

En los próximos días, postearé el paso a paso de la configuración de un Build para ser utilizado en un proceso de Gated CheckIn. Pero todos aquellos que sufran con la configuración de un Build, seguramente tendrán una sonrisa en su rostro y estarán preguntándose cuando podrán migrar a Visual Studio Team System 2010.

 

Saludos @ Here

El Bruno

Crossposting from ElBruno.com

[TFS2010] TFSBuild, nuevas opciones en las politicas de retención de Builds

Buenas,

una de las grandes novedades incorporadas en Microsoft Visual Studio 2008 estaba relacionada con la capacidad para configurar la ejecución de los builds. Si bien mucha gente se quedó con la idea de que era más fácil implementar Continuous Integration, una de las mejores características era que además era posibler definir políticas de retención de información para los builds. De esta forma, podíamos definir la cantidad de builds que queríamos mantener de acuerdo al estado de finalización de los mismos.

En Visual Studio Team System 2010 se extiende este concepto, incorporando además 2 novedades:

  • Capacidad para diferenciar entre Builds privados y lanzamos manualmente o por un Trigger
  • Capacidad para definir que elementos se quieren eliminar de un build

 

Ejemplos

Los siguientes ítems describen algunas de estas características:

1. Diferenciación de políticas para los builds lanzamos en modo privado y aquellos lanzamos manualmente o por un Trigger

 

2. Capacidad para definir la cantidad de resultados de Builds que se quieren mantener.

Se pueden elegir varias opciones por defecto, o definir el número como otra opción

 

3. Capacidad para definir que elementos se eliminarán en los builds.

Se pueden elegir varias opciones por defecto, o definir manualmente si se quiere retener:

  • Detalles del Build
  • El contenido de la carpeta de destino (Drop Folder)
  • Resultado de los Tests
  • Label, es posible eliminar el label que se genera automáticamente con la compilación

 

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com

[VSTS2010] Configurando la cobertura de codigo en pruebas unitarias

Buenas,

el formulario de configuración de ejecución de pruebas unitarias de Visual Studio Team System 2010 ha cambiado bastante ya que con alguna de las novedades incluidas en esta versión el mismo ha tenido que ser rediseñado. Entre estas novedades podemos mencionar que ahora es posible almacenar junto con el resultado de las pruebas unitarias, información de contexto como las propiedades del sistema operativo, una secuencia de imágenes o un video con el paso a paso de las pruebas, etc.

En este caso quiero hablar un poco de la configuración para la cobertura de código. Como se puede ver en la siguiente imagen, lo primero que llama la atención es que desaparecen los archivos .testrunconfig y en la nueva version su extensión es .testsettings

 

El nuevo formulario de configuración de ejecución de pruebas posee varias secciones nuevas, donde es posible configurar las opciones generales, parámetros de ejecución como por ejemplo la recolección de datos de sistema, opciones de filtrado sobre estos datos, configuración de scripts pre y post ejecución, etc.

 

En las opciones de ejecución, podemos ver que ahora es posible habilitar varios sistemas de recolección de datos:

  • Profiler para ASP.NET
  • Code Coverage (cobertura de código)
  • Event Log
  • System Information
  • Video Recorder
  • Test Impact Local Collector
  • Diagnostics Trace Collector

 

La configuración de Code Coverage, permite seleccionar los assemblies que queremos analizar (aunque todavía no está disponible la opción que poseemos en VS2008 de seleccionar archivos que cumplan con un patrón al estilo *test.dll)

 

Finalmente, la ventana que muestra los resultados de la cobertura de código no ha sufrido cambios todavía, como podemos ver en la siguiente imagen donde se muestra una comparación entre 2 ejecuciones de pruebas sobre un mismo proyecto

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com