Sesiones de ALM: Continuous Delivery, Automatización, NuGet+TFS, VS11, TFS Service, Scrum…

Si no tengo el récord, debo andar cerca… en menos de un mes he participado en tres eventos, en los cuales he sido ponente en un total de seis sesiones. Creo que debería plantearme cobrar por volumen (o por lo menos cobrar Smile).

Aquí os dejo el material de todas las sesiones; incluso están grabadas en video por si os interesa echarles un vistazo.

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-NOVEDADES-VSTUDIO-11-ENTREGA-CONTINUA

 

Grabaciones:

https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ES&EventID=1032504086&CountryCode=ES

http://www.zoguo.com/blog/videos/second-nug-como-hacer-el-paso-a-produccion-automatizacion-de-despliegues/

 

Grabación: http://www.globbtv.com/12/microsite/2012/12-horas-visual-studio-gestion-de-codigo-y-librerias-compartidas

 

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-NOVEDADES-VSTUDIO-11-ENTREGA-CONTINUA

 

Grabación: http://www.globbtv.com/2026/videos/12-horas-visual-studio-tfs-mas-ligero-en-la-nube

 

Grabación: http://channel9.msdn.com/Blogs/channel9spain/MICROSOFT-ALM-SESSIONS-2012-IMPLEMENTANDO-SCRUM-CON-TFS

Setting up the VS 2010 RTM virtual machine for VirtualBox

As you maybe already know, a new Visual Studio 2010 RTM virtual machine is available, so you can play around with VS, TFS, and the provided hands-on-labs.

There are versions available for Hyper-V, Windows Virtual PC and Virtual PC 2007. But if for any reason you do want to use VirtualBox (I’ll not deal with the reasons for choosing a virtualization platform here 😉 ), you can run into problems when trying to start the virtual machine.

I downloaded the Virtual PC 2007 version with the idea of creating a new VirtualBox machine and attaching the .vhd to it. But after setting up the machine with the standard configuration, during booting process, it a blue screen appears with a “STOP 0x0000007B” error message.

It seems that the issue is related to the fact that the installed operating system is configured for an IDE controller (the one used in Virtual PC 2007), while the VirtualBox configuration wizard leaves the .vhd attached to a SATA controller.

The fix consists simply on taking away the SATA controller and attaching the .vhd to the IDE controller. After doing it, the virtual machine should manage to boot, and from that point you’d be ready to install the VirtualBox guest additions and start having fun!

This is how the working configuration looks for me (Spanish interface here, but it’d be straightforward to figure it out for other languages):

 

image

Intellitrace: una buena razón para comenzar a probar VS2010

De todas las novedades que trae Visual Studio 2010, creo que una que nos facilitará la vida en gran medida a los desarrolladores, es Intellitrace. Este tema ya ha sido tratado en geeks (por ejemplo en varios posts de el gran Bruno), pero me gustaría dar una visión general y un ejemplo muy sencillo que permita intuir su potencia.

Intellitrace (antes conocido como Historical Debugger), supone una gran evolución en la forma en que podemos depurar nuestras aplicaciones. Se trata de un concepto bastante simple, pero que nos proporciona grandes posibilidades: Intellitrace puede grabar la mayoría de eventos y estados que se van sucediendo durante la ejecución de una aplicación. A medida que vamos teniendo todos estos datos grabados, Intellitrace nos permite utilizarlos para reproducir ejecuciones pasadas, e incluso “rebobinar”, o volver a estados anteriores de la aplicación, durante una sesión de depuración.

Como complemento a la capacidad de grabar, reproducir y volver atrás en el estado de las ejecuciones, además disponemos de una completa interfaz de usuario que nos permite analizar con todo detalle las grabaciones de ejecuciones efectuadas, teniendo de forma simple, acceso a datos muy valiosos. Entre estos datos podemos tener por ejemplo los sucesivos valores que van tomando nuestras variables, las posibles excepciones que se hayan producido, los accesos a ficheros y/o registro, e incluso las interacciones del usuario con la aplicación.

Con esto es muy fácil que los desarrolladores de .NET, podamos ir dejando un poco de lado técnicas de depuración basadas en cosas como Debug.WriteLine, bucear entre interminables ficheros de log, y torturas chinas similares.

Intellitrace da soporte a la depuración en diversos escenarios, incluyendo:

  • Grabación de eventos durante la ejecución de la aplicación, de modo que podemos saber fácilmente qué demonios está haciendo nuestra aplicación
  • Depuración basada en reproducir una ejecución grabada anteriormente. Extremadamente útil para reproducir y trazar bugs, y también para facilitar la colaboración de varios desarrolladores durante la depuración
  • Grabación y reproducción de fallos encontrados durante pruebas manuales, de gran interés para trabajar con nuestro equipo de pruebas o QA en la estabilización de nuestra aplicación (se acabó “en mi máquina funciona…”)
  • Depuración pruebas lanzadas durante construcciones automatizadas. Respuesta rápida a preguntas del tipo: las pruebas se ejecutan en mi máquina pero hacen fallar la build… ¿por qué?
  • Depuración de fallos encontrados como resultado de la ejecución de pruebas unitarias
  • Depuración de problemas encontrados durante pruebas de carga (por lo general bastante difíciles de investigar, si no es con la ayuda de mecanismos como las trazas o de la gente del DOT de Plain Concepts)

Como breve introducción a Intellitrace voy a poner un ejemplo extremadamente simple, pero espero que bastante ilustrativo. Es relativo al primer escenario: la grabación de eventos durante la ejecución de la aplicación.

  1. Crear una aplicación de consola en VS 2010 con un código como el siguiente (WARNING: lo que viene a continuación es un cúmulo de burradas, y puede herir la sensibilidad del lector en casi todas las líneas, pero cuanto más cafre sea el código, mejor para el ejemplo. Al fin y al cabo nuestro objetivo es depurar ¿no? :-P)
    using System;
    
    using System.Collections.Generic;
    
    using System.Linq;
    
    using System.Text;
    
    
    
    namespace HelloIntellitrace
    
    {
    
        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                while (true)
    
                {
    
                    try
    
                    {
    
                        Console.Write("Introduce un número: ");
    
                        int a = Int32.Parse(Console.ReadLine());
    
                        int b = 1;
    
                        Console.WriteLine((b / a).ToString());
    
                    }
    
                    catch (Exception)
    
                    {
    
                    }               
    
                }
    
            }
    
        }
    
    }
    
    
    
  2. En el menú Tools – Options – Intellitrace – Intellitrace Events, marcar el checkbox “Console”
  3. Iniciar la depuración. Cada vez que se nos pida en consola un número, introducir lo que nos venga en gana: números (incluido el cero), letras, etc.
  4. Sin parar la depuración, pulsar “Break All” en la ventana de Intellitrace y prestar atención a lo que aparece. Como podéis ver, tenemos en orden cronológico, todo lo que la aplicación ha ido haciendo durante su ejecución: excepciones lanzadas, excepciones capturadas, eventos del depurador… incluso la interacción del usuario con la consola. Al hacer click en cualquier entrada, obtendremos información adicional, enlaces a otras acciones, y además iremos al código fuente involucrado en dicho evento. Y en las ventanas de autos y pila tendremos toda la información correspondiente a cada evento grabado. Impresionante ¿no?

 image

Como podéis ver, extremadamente sencillo y potente, y eso que sólo hemos visto muy por encima el primero de los escenarios. Y lo tenéis disponible desde ya, en cuanto os decidáis a bajar la Beta 2 de Visual Studio 2010.

Un saludo!!!