July 2009 - Artículos

 

 

Buenas,

una de las cosas interesantes de trabajar con TFS, es que después de varios años y de muchos proyectos y clientes diferentes,  nunca termina de sorprenderme las necesidades de cada uno. Hoy, por ejemplo, en una de las implantaciones “grandes” de Team System, me comentarons que estaban creando un módulo que analizaba el tráfico http para conocer la utilización de TFS y de Team System Web Access.

Lo primero que se me ocurrió es que con la crisis estos se quedaron sin vacaciones, y para no aburrirse en verano se pusieron a crear un log parser; pero después cuando ví los números monstruosos de utilización del TFS, vi que un informe de uso era más que necesario para conocer la salud del mismo.

Antes que se pusiesen a reventar archivos de texto, les recomendé que le echen un vistazo al set de informes de rendimiento y utilización que Grant Holliday (ex MVP, ahora trabaja para Microsoft) creó hace un tiempo. Y por suerte, el gran Luis Fraile, explicaba como instalarlos en http://www.lfraile.net/post/Informes-de-rendimiento-de-TFS.aspx

Pero me quedaba pendiente el portal del Team System Web Access; asi que como me acordaba un poco de como funcionaban los informes, decidí tirar un par de queries contra la tabla tbl_Command de la base de datos TfsActivityLogging; en esa query vi que podía identificar las peticiones por la instancia de TSWA, y cuando estaba por crear un informe desde cero, la buena suerte acudió a mi rescate y tuve que responder una llamada por teléfono.

Los 5 minutos que invertí en organizar una salidita de cervezas para el viernes hicieron que al momento de sentarme de nuevo frente a mi laptop, hiciese una búsqueda en bing para ver si nadie se había currado el reporte y por suerte el equipo de desarrollo de TFS lo creó a principio de mes. Asi que bueno, pude pasar un par de links de referencia y unos minutos de soporte de instalación por teléfono y listo !!!

A partir de aqui, solo es necesario ver si los reportes son lo suficientemente completos y si hace falta más info, ver de donde se puede sacar la misma, pero son un muy buen punto de partida y además una excusa para que mis amigotes no trabajen las próximas 2 semanas.

Resources:

Saludos @ Home

El Bruno

Buenas,

hace una pila de tiempo en geeks.ms Jersson preguntaba porque no era posible crear una instancia directamente desde el diseñador de clases para poder probar la misma. Sinceramente era una funcionalidad que no conocía, pero escribi a una lista interna para ver que me decían y la respuesta fue que habían decidido eliminar la herramienta Object Test Bench en esta versión.

Como no conocía la herramienta, la puse en mi ToDo de cosillas para ver y al final nunca le di un vistazo. Pero bueno, Habib Heydarian en su blog ha puesto una entrada donde comenta el porqué han sacado esta herramienta y otras más:

  • Application Verifier
  • Object Test Bench
  • Soporte para la depuración en SQL 2000

La verdad es que son herramientas que nunca he utilizado, por lo que no tengo una opinión formada al respecto; pero seguro  que a más de uno le molesta  :D

Fuente: http://blogs.msdn.com/habibh/archive/2009/07/27/visual-studio-2010-rip-list-partial.aspx

 

Saludos @ Home

El Bruno

Buenas,

después de comentar un poco las novedades que posee la Start Page de Visual Studio 2010, hoy toca modificarla un poco. Para esto me he basado en el siguiente post, pero como todavía estamos en Beta 1, esto puede cambiar. El siguiente tutorial es parte traduccion y parte adaptación

1. Creamos un directorio StartPages en Mis Documentos, por ejemplo en [C:\Users\<user>\Documents\Visual Studio 10\StartPages].

2. Copiamos el contenido de la Start Page que posee Visual Studio a nuestra carpeta. Es decir desde [\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\StartPages] a [C:\Users\<user>\Documents\Visual Studio 10\StartPages].

3. Habilitamos la personalización de la Start Page desde las opciones de Visual Studio 2010

image

4. A continuación ya podemos editar el archivo [StartPage.xaml] y aplicarle las modificaciones que querramos al mismo.image 

5. Con mis escasísimos conocimientos de WPF, he aplicado un par de cambios, de color de fondo, un nuevo item y otro par de cosas; y listo, nuestra SP ya está modificada a nuestro gusto.

image

Quedan cosillas pendientes, como ver si existe la posibilidad de utilizar controles de 3ras partes, donde desplegar ensablados personalizados y otras dudas más. Si logro hacer una más completa, postearé al respecto.

 

Saludos @ Home

El Bruno

Buenas,

hace un par de días comenté que nuestros amigos de Quest habían liberado una versión Beta de un nuevo proveedor que nos permite trabajar con proyectos de bases de datos Oracle en Visual Studio 2010. Ahora que ya pasó el momento demo, me pude poner y probar esta versión y la verdad es que después de descargar Oracle Express 10g, instalarlo en una máquina virtual y empezar a probar la ingeniería inversa desde Visual Studio me quedé sorprendido porque el entorno de trabajo es natural y la verdad es que muy similar al que ya conocemos con SQL Server.

Estaba por hacer un pequeño paso a paso, desde la creación de un proyecto hasta la modificación y gestión del mismo con TFS; pero en el camino me encontré con video en YouTube que lo explica MUY BIEN. Asi que dejo solo los 2 primeros screenshots y después del video:

image image

Ahora bien, cosillas que me han llamado la atención de mi pequeña prueba y del video de la gente de Fuze

  • Creación a partir de un proyecto existente. La ingeniería inversa funciona y bstante bien, lo he probado una DB bastante pesada de Oracle y la verdad es que no dio problemas al importarla y crear el proyecto.
  • Los archivos no poseen extensión sql, son osql.
  • El editor de tablas visual, se integra muy bien con los tipos de datos propios de Oracle.
  • La herramienta de comparación de schemas también está soportada. Si lo pienso un poco, esto es 100% comprensible, ahora los proyectos son una metadata independiente del proveedor de base de datos, si la herramienta de comparación trabaja contra esta metadata no debería tener problemas. (dudas pendientes, ¿que pasa con el código generado por esta herramienta?, ¿permite comparar oracle vs sql y viceversa?, me las apunto)

Bueno por ahora me sirve para tener una referencia y para ver que no es “de cartón piedra” sino que el producto está madurando bastante.

 

Saludos @ Home

El Bruno

Buenas,

 

algo que no comenté mucho de la nueva versión de Visual Studio y que ha cambiado bastante es la Start Page. La primera gran novedad es que ahora también está basada en WPF, con las ventajas que posee esto: las capacidades de personalización son impresionantes. Pero eso va para el final o para otro post.

Cuando vemos la nueva Start Page, vemos que la misma posee 3 secciones principales:

  • Welcome
  • Projects
  • Visual Studio

image

En la sección Welcome, podemos acceder directamente a contenidos online de Visual Studio como Walkthroughts y extensiones para Visual Studio. Pero además podemos acceder a la página de Feedback oficial de Visual Studio, donde podemos dejar nuestros comentarios o sugerencias sobre esta versión de Visual Studio; y finalmente tenemos un acceso directo a las opciones de configuración de la Start Page.

image

En la sección Projects, podemos realizar las acciones básicas para trabajar con proyectos: crear nuevos proyectos/soluciones, abrir un proyecto/solución desde un archivo en disco y consultar los proyectos/soluciones recientes. Una de las novedades interesanes en la nueva Start Page, consiste en las 2 nuevas opciones que se han agregado para cada uno de los items de los proyectos recientes:

  1. eliminar el elemento de la lista de proyectos recientes.
  2. dejar el elemento “para siempre” en la lista de proyectos recientes.

 image

Esto es muy útil para aquellos que en determinadas ocasiones trabajamos en varios proyectos a la vez, pero que siempre tenemos 3 proyectos principales con los que manejarnos.

Finalmente la sección Visual Studio, nos presenta diferentes accesos a los contenidos más relevantes propios para desarrolladores:

  • Acceso a MSDN
  • Acceso a los forums de MSDN
  • Acceso a la comunidad de desarrollo de Visual Studio Team System
  • Acceso a las opciones de configuración de Visual Studio

image

En el próximo post comentaré como modificar y personalizar la Start Page. Tarea que no parece muy útil pero que puede ser de gran utilizad para agregar elementos como:

  • El logo de tu empresa. Siempre hay gente a la que les gusta que las herramientas de desarrollo estén personalizadas.
  • Un visor de resultados de ejecución de Builds de TFS. Vamos que abrir Visual Studio y ver los resultados de las compilaciones es interesante.
  • etc …

 

Saludos @ SwimmingPool

El Bruno

Buenas,

¿quien dijo que hacer las cosas bien no da sus buenos resultados?; pues un ejemplo de ello es poder revisar como evoluciona la version de ReSharper para VSTS 2010 (herramienta imprescindible cuando te acostumbras y ya sé que más de uno me tirará con un televisor de tubo de 32 pulgadas, pero yo soy así: me gusta).

En el siguiente link http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+for+Visual+Studio+2010+%28Preview%29 es posible ver las diferentes compilaciones del AddIn y la evaluación del mismo por parte de los usuarios, además de los errores conocidos y las opiniones de los developers y los usuarios.

Hoy hago un backup de mi VM de VSTS 2010 y pruebo esta versión a ver que novedades incluye.

 

Saludos @ Home

El Bruno

Buenas

ya había leído por ahi que esta semana se cumplian 10 años de Messenger y la verdad es que me puso contento porque yo tengo mi cuenta de msn desde el 1999; desde casi los primeros días cuando cambié de ICQ a Messenger. No iba a comentar nada, pero este pedazo de  video friki hizo que cambie de opinión

 

Saludos @ Home

El Bruno

Publicado 23/7/2009 21:04 por El Bruno | con no comments
Archivado en: ,,

Buenas,

después de jugar bastante con los nuevos diseñadores que se incluyen en VSTS 2010, no pude dejar pasar la oportunidad de comprobar las nuevas DSL Tools.  Como hace un tiempo estuve trabajando mucho con las DSL Tools para Visual Studio 2008, e hice mi carta a los reyes magos, estuve evaluando las novedades que se incluyen en esta versión y hay algunas que son muy interesantes, especialmente en lo referido a la capacidad de trabajo en los diseñadores de las DSL Tools:

  • Sticky Toolbox Items
    Parece algo muy simple, pero es realmente útil tener la capacidad de seleccionar un elemento de la toolbox y poder crear N instancias del mismo en el diseñador. Antes para cada “click” habia que volver a seleccionar el elemento de la toolbox, ahora con los Sticky Toolbox Items tenemos el problema solucionado.
  • Decoradores flotantes
    Otra novedad interesante, la capacidad de poder mover los decorators propios de un diagrama a la ubicación que mejor quede visualmente. En este post (http://blogs.msdn.com/jmprieur/archive/2009/07/16/moveable-decorators.aspx) lo explican muy bien
  • Copiar elementos
    Esto es increible, ahora puedes seleccionar elementos en un diagrama y si te mueves a otro diagrama del mismo tipo o a otro tipo de diagrama que soporte los tipos de elementos seleccionados (¿ya comenté que ahora los tipos de elementos pueden ser globales yahoooo?) y pegas; la información se pega en el nuevo diagrama.
  • Copiar como imagen
    El mismo texto lo dice, antes había que hacerlo a mano, ahora ya está implementado.

Si alguien quiere ver más novedades al respecto, Pablo Galiano está escribiendo un post diario casi con las novedades en las DSL Tools y el modelo de extensibilidad de Visual Studio 2010.

Saludos @ La Finca

El Bruno

Buenas,

si no fuese porque mañana hay una demo importante y por la tarde tengo que pasarle mi máquina virtual de VSTS 2010 a Rafa, un compañero de Avanade, ya estaba instalado los últimos binarios de TeamFuze que nos permiten desde el perfil de Profesional de Base de Datos en Visual Studio (AKA DataDude) trabajar con bases de datos Oracle 9 o superior.

Entrando un poco más en detalle y espero que la memoria no me juegue una mala pasada, creo recordar que desde hace un tiempo se introdujo un cambio importante en las herramientas del DataDude donde los artefactos con los que trabajaban los proyectos de base de datos hacían referencia a un metadiccionario, con lo que era posible asociar los elementos de este diccionario a diferentes motores de bases de datos (en realidad el concepto es mucho más complejo que un diccionario, pero para explicar la idea basta).

Obviamente, Visual Studio provee el soporte para bases de datos SQL Server, y no pasó mucho tiempo hasta que alguien se animó con otra de las grandes bases de datos: Access Oracle. Es por esto que ayer, además de festejar el día del amigo como corresponde la gente de Team Fuze hizo este anuncio oficial (http://teamfuze.net/ann.jspa?annID=254)

That's right! After many long months, the beta is live!
To download the beta, make sure you
LOG INTO THIS FORUM and then visit the Beta Downloads forum, which is visible only once you're logged in.
Requirements:

  • Microsoft Visual Studio Team System Developer 2010 Beta 1
  • Oracle 9i (or later) client software
    Please make sure you provide feedback in the forums here at TeamFuze.net. We are eager to help and would love to hear about your experiences with Project Fuze!
    -- the TF Team
  • Supongo que mañana ya tendré tiempo para instalarme un Oracle eXpress y probar esta herarmienta. Y siendo un poco neutral al momento de plantearlo:

    ¿NO ES GENIAL QUE PODAMOS DAR SOPORTE COMPLETO AL CICLO DE VIDA DEL DESARROLLO DE APLICACIONES QUE USEN BASES DE DATOS ORACLE?

     

    Saludos @ Here

    El Bruno

    Buenas,

    muchas veces cuando comenzamos a hacer algún proyecto en .Net tratamos de guiarnos por alguna experiencia existente. Desde como organizar el código, cómo organizar los proyectos; hasta como gestionar las excepciones o utilizar trazas (obviamente con EntLib).

    DinnerNow es un proyecto que pretender mostrarnos muchas buenas prácticas aplicadas en una solución completa cuyo objetivo es crear un marketplace donde los clientes pueden realizar pedidos por internete de comida.

    La última versión está basada en las siguientes tecnologías

    • Visual Studio 2008 Service Pack 1 and .NET Framework 3.5 Service Pack 1
    • Windows Vista Service Pack 2 (32-bit)
    • Windows Server 2008 Service Pack 2 (32-bit)
    • SQL Server 2005 Express Service Pack 3 (32-bit)
    • Internet Explorer 8 (32-bit)

    y cómo detalles interesantes puedo remarcar que el código es muy fácil de leer y de comprender. Además de tener todos los proyectos en una única solución donde se han organizado de manera bastante natural.

    DinnerNow screenshots

    Pues bien, si no sabes por donde empezar o tienes un tio que quiere vender pizzas por internet, DinnerNow es un excelente recurso a tener en cuenta.

    WebSite: http://dinnernow.codeplex.com/ 

    Saludos @ Here

    El Bruno

    Buenas,

     

    hoy comentabamos con un compañero de trabajo sobre el diagrama Layer Diagram de VSTS 2010 y una de las cosas que le llamó la atención fue la capacidad de crear dependencias bireccionales. En la siguiente imagen se muestra la Toolbox de un diagrama del tipo Layer Diagram y el 4to elemento en la misma es una dependencia bidireccional.

    image

    Si pensamos en que cada componente del diagrama representa a un proyecto, es normal pensar que no tienen sentido las dependencias bidireccionales; ya que estariamos creando dependencias circulares y todos conocemos ese infierno en .Net. Pero los componentes del diagrama también pueden representar Namespaces o Clases en uno o más proyectos, con lo que si tenemos un código similar al siguiente:

       1:    class DemoClassA
       2:    {
       3:      public void Demo() 
       4:      {
       5:        DemoClassB b = new DemoClassB();
       6:      }
       7:    }
       8:    class DemoClassB
       9:    {
      10:      public void Demo() 
      11:      {
      12:        DemoClassA b = new DemoClassA();
      13:      }
      14:    }

    y asociamos cada clase a un componente en el diagrama deberíamos tener un diagrama como el siguiente:

    image

    Si desplegamos el menú contextual y seleccionamos la opción Generate Dependencies, veremos como se dibuja una dependencia bidireccional:

    image

    Pues bien, para ejemplo 14 líneas de código aunque lo más interesante es que si bien existe la capacidad de crear relaciones bidireccionales, el instinto por lo general nos da un warning frente a estos escenarios o sea que debemos andar con cuidado (o eso pienso yo :D)

     

     

    Saludos @ Home

    El Bruno

    Buenas,

    durante los últimos días he escrito un poco sobre las capacidades del Layer Diagram (aquí y aquí). Una de las cosas que más me llamó la atención y que además preguntaron en el evento de Novedades de VSTS 2010 con los chicos de SecondNUG; era sobre qué tipo de asociaciones era posible realizar con una “cajita” del Layer Diagram.

     

    Pues bien, además de poder asociar proyectos como hemos hecho hasta ahora, es posible asociar clases o cualquier elemento que genere código en un proyecto (datasets, entity models, etc.). Una vez seleccionado, si queremos ver las relaciones que posee una capa, seleccionamos la misma, desplegamos el menú contextual y seleccionamos la opción View Links.

    image 

    En la capa de presentación; he asociado a la misma un proyecto del tipo Winforms y otro proyecto del tipo Consola; y al momento de ver las relaciones se ven las siguientes:

    image

    En la capa de lógica de negocios, además de un proyecto de biblioteca de clases, que se ve como “dll file”; he asociado varios elementos del mismo como una clase, y un modelo de EF con una entidad y automáticamente ha creado la asociación para ambos elementos:

    image

    Finalmente comentar que existe la capacidad de asociar diagramas o elementos del diagrama con WorkItems (Bugs, Tareas, etc.); pero no se si por un error de la Beta 1 o por no saber utilizarlo no he podido completar una demo para mostrar esta funcionalidad:

    image

     

    Saludos @ Home

    El Bruno

    Buenas,

    ya vamos por el 9no recopilatorio con los posts que voy escribiendo sobre las novedades de Visual Studio Team System 2010 (aka “What’s new in Visual Studio Team System 2010”). Después de un par de semanas y eventos con la Beta 1 la verdad es que mi conclusión es que ya está muy maduro, aunque claro ahora quedan cosas pendientes como que funcione con Office 2010, que se estabilize un poco la performance el rendimiento, etc.

    WorkItems
    Source Control
    TFS Build
    Herramientas de Modelado
    Visual Studio
    Visual Studio Test
    Infraestructura y Mantenimiento

    Process Guidante

    Varios

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

    Saludos @ Home

    El Bruno

    Buenas,

    en el anterior post comenté como es posible utilizar el diagrama Layer Diagram para validar si nuestro diseño de capas cumple con ciertas reglas. Es decir, por un lado diseñamos nuestra solución y luego validamos la implementación de la misma con el diagrama. Además de poder utilizar este diagrama para validar, también es posible utilizarlo para “descubrir” las relaciones que existen entre los elementos del mismo y su correspondiente “par” en nuestra solución. En el siguiente ejemplo, mostraré como partir de un diagrama en blanco y que el mismo nos muestre las relaciones que existen en el código.

    Tutorial

    1. Repetimos los pasos del 1 al 8 del post anterior (http://geeks.ms/blogs/elbruno/archive/2009/07/10/vsts2010-validando-relaciones-entre-capas-con-el-nuevo-layer-diagram.aspx)

    2. Eliminamos las relaciones entre los componentes del diagrama.

    image

    3. En el proyecto de WinUI, agregamos el siguiente código que nos implica que dsde esta capa (WinUI) estamos definiendo una relación con la capa de datos y con la capa de negocios:

       1:      private void Form1_Load(object sender, EventArgs e)
       2:      {
       3:        ElBruno.LayerDiagram.Data.Class1 c = new ElBruno.LayerDiagram.Data.Class1();
       4:        ElBruno.LayerDiagram.Business.Class1 d = new ElBruno.LayerDiagram.Business.Class1();
       5:      }

    4. En el proyecto Business agregamos el siguiente código que nos implica que desde la capa de Business estamos definiendo una relación con la capa de Datos:

       1:      public void DemoLayerDiagram()
       2:      {
       3:        ElBruno.LayerDiagram.Data.Class1 c = new ElBruno.LayerDiagram.Data.Class1();
       4:      }

    5. Volvemos al diagrama, desplegamos el menú contextual y seleccionamos la opción Generate Dependencies.

    image

    6. Nuestro diagrama agregará las relaciones correspondientes entre los componentes del mismo.

    image

     

    En solo 6 pasos podemos comprobar una de las excelentes opciones que nos ofrece esta herramienta, aunque claro, este tipo de tarea es mucho más simple realizalo utilizando el Architecture Explorer, ya postearé sobre eso más adelante.

     

    Saludos @ Home

    El Bruno

    Buenas,

    uno de los nuevos diagramas que se incluyen en la versión 2010 es el Layer Diagram. Este diagrama nos permite llevar a Visual Studio esos dibujos iniciales que solemos hacer en una pizarra donde explicamos lo que pensamos que puede llegar a ser nuestra solución. Pero además de ser una herramienta interesante para modelas los componentes de una solución, también nos puede servir para validar si las relaciones entre estos componentes se cumplen en la implementación de la solución.

    Como es viernes y hoy toca cervecitas con amigos mejor vamos con un pequeño ejemplo para demostrar esta funcionalidad.

    Tutorial

    1. Creamos una nueva solución, en la que incluimos 3 proyectos que simulen una aplicación en 3 capas. Para este ejemplo los proyectos son

    • ElBruno.LayerDiagram.Data
    • ElBruno.LayerDiagram.Business
    • ElBruno.LayerDiagram.WinUI

    image 

    2. Agregamos una referencia al proyecto ElBruno.LayerDiagram.Data desde el proyecto ElBruno.LayerDiagram.Business.

    3. Agregamos una referencia a los proyectos ElBruno.LayerDiagram.Business y ElBruno.LayerDiagram.Data desde el proyecto ElBruno.LayerDiagram.WinUI.

    4. Seleccionamos la solución y agregamos un nuevo item a la misma.

    5. En el formulario de selección del tipo de elemento, seleccionamos Layer Diagram.

    image 

    6. Cuando editamos el diagrama podemos ver el editor y la caja de herramientas para trabajar con el mismo.

    image

    7. Una de las novedades interesantes que se incoroporan en este modelo es la capacidad de agregar componentes al diagrama, basados en plantillas. Para este ejemplo agregaremos el patrón Three Layer.

    image

    8. Desde el Solution Explorer, seleccionamos el proyecto ElBruno.LayerDiagram.Data y lo arrastramos al componente Data Source. Repetimos lo mismo con los demás proyectos.

    9. En este momento, podemos validar la arquitectura y las relaciones entre los componentes; desplegando el menú contextual sobre el diagrama, y seleccionando la opción Validate Architecture.

    image

    10. Nuestra solución cumple correctamente las relaciones que hemos definido en el diagrama.

    image

    11. Pero que pasa si desde el proyecto ElBruno.LayerDiagram.WinUI agregamos el siguiente código dentro del formulario:

        private void Form1_Load(object sender, EventArgs e)
        {
          ElBruno.LayeredDiagram.Data.Class1 c = new ElBruno.LayeredDiagram.Data.Class1();
        }

     

    12. Si validamos una vez más la arquitectura podremos ver que el proceso de validación dispara 2 errores donde se nos indica que el diagrama de capas no especifica que puedan existir relaciones entre la capa de datos y la capa de presentación.

    image 

     

    Saludos @ Home

    El Bruno

    Buenas,

    cuando trabajas con TFS Build en Team Foundation Server 2008; por lo general siempre te encuentras bajo la necesidad de cambiar una pequeña configuración al proceso del Build para que tenga un comportamiento especial. Por ejemplo, si quieres que el nombre del build que se genere, cumpla con un formato específico, pues tienes que modificar el proceso de Build.

    En VSTS 2010, el formulario de lanzamiento de builds ha evolucionado un poco y ha incorporado una nueva pestana donde se muestran opciones adicionales. Así de esta manera, la primera pestaña nos muestra los datos clásicos para el lanzamiento de un Build, como el nombre del Build, el agente (ahora llamado Build Controller) que lo procesará y el directorio donde se almacenarán los binarios resultantes del Build.

    image

    Pero existe una segunda pestaña que nos permite ir más allá todavía y modificar cosas tan interesantes como:

    • Definir Tags: estos tags permiten que el server de compilación sepa a que Build Controller puede enviar el proceso. Ideal para separar entornos específicos de compilación para BTS, MOSS, etc.
    • Definir el tiempo de ejecución: siempre viene bien poder cambiar el Timeout de ejecución de un build para una prueba específica.
    • Habilitar o deshabilitar la ejecución del Análisis de Código: una vez más, podemos ganar algo de tiempo a costa de …
    • Asociar ChangeSets y WorkItems al Build: de esta forma podemos independizar el build de los changesets y WI que han influido en el mismo
    • Crear un WorkItem si falla el Build: :D
    • Realizar Análisis de Impacto: True / False
    • Habilitar o Deshabilitar la ejecución de las pruebas: puede parecer obvio, pero existen ocasiones donde solo queremos verificar que “compile”.
    • Ejecutar la compilación utilizando un Label específico: opción interesante cuando se cierran versiones.

    image

    Les dejo la 2da pestaña en 2 imágenes así me ahorro el scroll :D

     

    Saludos @ La Finca (en el lado oscuro del CRM !)

    El Bruno

    PD: lamentablemente desde el WebAccess todavía no podemos acceder a esta información si lanzamos un Build

    image

    Buenas,

    gripe en progreso de por medio, hace minutos terminé el webcast sobre las novedades en Visual Studio Team System 2010 con los chicos de SecondNug. Fueron 120 minutos intensos donde no paré de hablar una de las ventajas o no, de ser Argentino y pasé por varias de las nuevas capacidades de esta versión:

    • El nuevo IDE basado en WPF
    • La capacidad de 1ro declarar y luego consumir
    • El motor de búsqueda inteligente
    • El depurador histórico
    • Algunas novedades en C# 4.0 y en VB.Net 10
    • Los lenguajes dinámicos
    • Algunas novedades de TFS 2010 relacionadas con los WorkItems, jerarquías, folders en las Team Queries, etc.
    • Algunas novedades de TFS 2010 relacionadas con las visualización de branches y Changesets
    • Algunas novedades relacionadas con el nuevo TFS Build
    • Un pequeño repaso sobre el Architecture Explorer
    • Un pequeño repaso sobre los diagramas UML
    • Un ejemplo del Layer Diagram validando dependencias en el modelo
    • etc. …

    Vamos, que la charla fue intensa y espero que no se hayan dormido del otro lado del Live Meeting. Y como siempre después de un evento, la descarga a la presentación y a los materiales del mismo:

    Finalmente agradecer a los chicos de SecondNug que me brindan la oportunidad de hacer esto que realmente me gusta y seguirlos apoyando en sus iniciativas porque cada vez están mejor !!!

     

    Saludos @ Home

    El Bruno

    PD: Y ya que estoy, he visto que varios bloggers comparten las presentaciones con SlideShare, ¿cómo prefieren las presentaciones, en ZIP o en SlideShare?

    Buenas,

    mañana es el evento de Novedades de VSTS 2010 con los chicos de SecondNug, y como soy estuve de remodelaciones en mi portatil, decidí hacer varias pruebas de última hora.

    Una de ellas es el ABC de las demos de Team System, crear un proyecto con un par de clases, crear un par de pruebas unitarias, subir todo al gestor de código fuente, crear un proceso de compilación, configurar la compilación continua y listo !!! ya podemos hablar durante 90 minutos de las bondades de esta forma de trabajo que así en 3 líneas parece muy fácil, ¿no?

    Pero cuando estaba terminando el ABC de la configuración para esta demo me encuentro con que mi proceso de MSBuild compilaba pero no podía ejecutar las pruebas, me salía el siguiente error:

    File not found: MSTest.exe

    image

    Yo no me considero una persona inteligente, pero les juro que busqué y encontré el archivo MSTest.exe, asi que algo mal debe estar haciendo el proceso de build.

    Después de realizar una pequeña búsqueda en internet y en los foros de Visual Studio, encontré que el error está reportado para compilaciones en ordenadores con procesadores x64 y que la solución consiste en indicar a través de una entrada en el registro de Windows la ubicación de los archivos de Visual Studio.

    En necesario crear una entrada de tipo string llamada InstallDir en HKLM\Software\Microsoft\VisualStudio\10.0; y copiar el valor de la misma que posee en HKLM\Software\Wow6432Node\Microsoft\VisualStudio\10.0.

    Lanzar una nueva compilación y listo !!!

    Saludos @ Home

    El Bruno

     

     

    Buenas,

    después de 3 días encerrado y aburrdo en un hospital, empiezo a desempolvar algunos posts que estaban a medio hacer. Uno de ellos es comentar una solución que organizamos con el amigo JuanLu para escenarios donde se requieran ejecutar pruebas unitarias que utilicen Microsoft Outlook (teniendo en cuenta esto que comenté hace 2 días por las dudas).

    Warning, no es posible crear pruebas unitarias para proyectos del tipo AddIn de Outlook

    Antes de comentar como configuramos las pruebas unitarias, es necesario tener que cuenta que por cuestiones de seguridad y de interfaz en un ensamblado del tipo AddIn de Outlook, si queremos crear pruebas unitarias a partir del mismo nos encontraremos con el siguiente error en el asistente para la creación de pruebas unitarias de Visual Studio:

    image

    Asi que la sugerencia en este escenario es implementar toda la funcionalidad que requerimos de Outlook en un proyecto del tipo Biblioteca de Clases y sobre el mismo creamos las pruebas unitarias.

    Creando pruebas unitarias para interactuar con Outlook

    Pues bien, a modo de ejemplo he creado una clase que posee 2 funciones que retornan la cantidad de elementos que hay en el Inbox y en en Calendar:

       1: public class Engine
       2: {
       3:   public int GetMails()
       4:   {
       5:     _Application app = new Application();
       6:     int ret = -1;
       7:     Microsoft.Office.Interop.Outlook.MAPIFolder inbox = 
       8:         app.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
       9:     if (inbox != null)
      10:       ret = inbox.Items.Count;
      11:     return ret;
      12:   }
      13:   public int GetCalendars()
      14:   {
      15:     _Application app = new Application();
      16:     int ret = -1;
      17:     Microsoft.Office.Interop.Outlook.MAPIFolder cals = 
      18:         app.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
      19:     if (cals != null)
      20:       ret = cals.Items.Count;
      21:     return ret;
      22:   }
      23: }

    Sobre esta clase, también he creado un par de pruebas unitarias para probar el funcionamiento de la clase Engine:

       1: /// <summary>
       2: ///A test for GetCalendars
       3: ///</summary>
       4: [TestMethod()]
       5: public void GetCalendarsTest()
       6: {
       7:   Engine target = new Engine(); 
       8:   int actual;
       9:   actual = target.GetCalendars();
      10:   Assert.IsTrue(actual > 0);
      11: }
      12:  
      13: /// <summary>
      14: ///A test for GetMails
      15: ///</summary>
      16: [TestMethod()]
      17: public void GetMailsTest()
      18: {
      19:   Engine target = new Engine();
      20:   int actual;
      21:   actual = target.GetMails();
      22:   Assert.IsTrue(actual > 0);
      23: }

    Si lanzamos las pruebas unitarias podremos ver como se levanta el proceso de Outlook sin mostrar la interfaz y que se ejecutan las pruebas correctamente. Otra opción es tener el Outlook en ejecución y lanzar las pruebas para ver el resultado.

    image

    Integrando el proceso con TFSBuild

    Para lograr automatizar el proceso de construcción y pruebas, el paso siguiente es configurar un build que compile y ejecute estas pruebas. Antes de continuar debermos tener en cuenta que, ya que estamos trabajando con Outook; es muy probable que el usuario con el que se ejecuten estas pruebas necesite tener configurado su perfil de Outlook para poder trabajar. Si intentamos utilizar el servicio de Team Foundation Server Build, que por defecto suele estar configurado con el usuario TFSBuild; debemos configurar el perfil de Outlook de este usuario.

    Sin embargo al momento de lanzar una compilación utilizando el servicio de TFS Build nos encontraremos con que la compilación se ejecuta correctamente, pero al momento de ejecutar las pruebas tendremos un error similar al siguiente:

    Test method JL02.Test.EngineTest.GetMailsTest threw exception:  
    System.Runtime.InteropServices.COMException: The file 
    C:\Documents and Settings\TFSBUILD\Local Settings\Application 
    Data\Microsoft\Outlook\Outlook.pst cannot be opened..

    image

    Donde podremos ver que el proceso de compilación no puede lanzar Outlook ya que en el perfil del usuario TFSBuild no es posible acceder al archivo de datos propio de Outlook.

    Para solventar este problema, podemos cambiar la confíguración del proceso de compilación TFS Build para que no se ejecute como servicio de Windows sino para que se ejecute como un programa más, asociado a un perfi de usuario.

    En este post, explique cómo configurar el servicio de TFS Build para que interactue con el Desktop; pero para este caso es bueno recordar los pasos para realizarlo.

    1. Detener el servicio de windows Team Foundation Server Build.

    2. Abrimos una ventana de comandos y lanzamos el exe de TFSBuild para se ejecute en modo interactivo, con el comando

    "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\TFSBuildService.exe"

    3. Debemos dejar el proceso en ejecución para que las peticiones al servicio de compilación se ejecuten en este proceso.

    image

    4. Si tratamos de procesar una compilación, nos encontraremos con el siguiente error:

    image

    ya que por defecto el agetne de compilación recibe peticiones en el puerto 9191 y el servicio interactivo está configurado en el puerto 9192.

    5. Para solucionar este problema, crearemos un nuevo agente que utilice el puerto 9192.

    6. Dentro del panel Team Explorer seleccionamos el directorio Builds, desplegamos el menú contextual y seleccionamos la opción Manage Build Agents.

    7. En el formulario de configuración de agentes. creamos un nuevo agente con la siguiente información, donde los datos del servidor son los mismos, pero he cambiado el puerto a 9192.

    image

    8. El nuevo agente debe aparecer en el listado de agentes de compilación disponibles.

    image

    9. Lanzamos una nueva compilación configurando para que se utilice el agente que hemos creado en los pasos anteriores.

    image

    10. Y nuestro proceso de compilación ya posee acceso al proceso de Outlook y al perfil del usuario que lo ejecuta para poder ejecutar las pruebas unitarias correctamente. La siguiente imagen muestra como se han ejecutado 2 pruebas unitarias y una ha pasado correctamente y la otra posee un error.

    image

    11. En este punto ya tenemos integradas nuestras pruebas unitarias que utilizan Outlook dentro del proceso de compilación y podremos ver la evolución de las mismas aprovechando las ventajas de TFS que no comentaré porque ya bastante hemos posteado al respecto.

    image 

     

    Espero que además de a JuanLu a alguien le sea de utilidad y recuerden que lo interesante de este enfoque es que se pueden levantar varios agentes, utilizando diferentes perfiles de usuario de correo para ejecutar las pruebas con diferentes configuraciones.

     

    Saludos @ Home

    El Bruno

    Buenas,

    hace un tiempo el amigo JuanLu estuvo sentado al lado mío armando unas maquetas para ver como automatizar un proceso de proceso de pruebas unitarias para un proyecto que tenía integración con Microsoft Outlook 2007 a través de un AddIn. Lo primero que hicimos fue hacer un AddIn de carton piedra y tratar de ejecutar el mismo, pero cual fue mi sorpresa cuando al momento de “presionar F5” me encontré con que la instancia de Visual Studio 2008 se cerraba sola. Yo estoy acostumbrado a comportamientos extraños del IDE de Visual Studio, porque por lo general le creo extensiones, instalo AddIns, etc.; pero en este caso estaba probando e una máquina de desarrollo limpia.

    Así que me puse a ver que pasaba en el proceso devenv.exe*32 y vi que el problema estaba relacionado con la carga de System.Core.dll, pero después cuando le di un par de vueltas más caí en que el problema estaba relacionado con las PowerComands de VS2008. Como antes ya me habían dado otros problemas, probé con la solución de cajón: desinstalar las PowerCommands y probar.

    Todo funcionó correctamente, así que ya sabes, si tienes que desarrollar AddIns para Outlook 2007, no te recomiendo las PowerCommands.

     

    Saludos @ Hospital

    El Bruno

    PD: aquí (http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/99e124d0-c5d7-49c0-b1dd-71328f9a6571) pueden ver un poco de información en un foro, que era el siguiente paso si no encontraba la solución rápidamente.

    Más artículos Página siguiente >