Para todos aquellos que estéis jugando con VS2010, especialmente con el Code Profiler, puede que os haya ocurrido este bug, que os voy a contar.

El entorno es, una máquina con sistema operativo de 64 bits, VS 2010 Ultimate RC.

Pues bien, creamos un proyecto de pruebas (o uno que ya tengamos), agregamos una prueba unitaria, la ejecutamos, y nos vamos a los resultados del test para crear una nueva “Performance Session” (Code profiler), pulsando con el botón derecho en el resultado:

image

Esto nos guiará al wizard de creación de la prueba de profiling, y en la última pantalla, se nos preguntará si queremos lanzar la sesión de rendimiento automáticamente al terminar:

image

Pues bien, si seleccionamos esta opción, veremos como nuestro VS2010 da un error y se cierra :)

El workaround es bien sencillo, no seleccionéis esa última opción, y ejecutar la prueba manualmente despues de crear la prueba de rendimiento.

Por suerte está reportado y probablemente lo veremos reparado en la RTM.

con no comments
Archivado en:

Una de las novedades de VS 2010 relacionadas con el desarrollo de aplicaciones ASP.NET son los ficheros de transformación de la configuración para el deploy (en inglés y un poco antiguo pero vale para que pilléis de que va http://blogs.msdn.com/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx)

Estos ficheros, cuando creamos un nuevo proyecto ASP.NET, se nos crean automáticamente, pero ¿qué ocurre con proyectos que importamos de VS 2008?¿y cuando añadimos nuevas configuraciones de compilación?.

Pues bien, tenemos una opción para generarlos en caso de que no existan, y es, pulsando botón derecho sobre el fichero Web.config, nos da la opción de “Add Config Transforms”

image

Que nos generará todos los ficheros de transformación para todas las configuraciones de compilación que tengamos.

Y además, para todas aquellas que sean != debug (comprueba sólo el nombre por desgracia), nos añade esta línea de transformación:

<compilation xdt:Transform="RemoveAttributes(debug)" />

Para que no se nos olvide jamás en producción el maldito atributo “debug=true” en nuestros web.config

con no comments
Archivado en:

Si estás pensando en actualizarte a TFS 2010, aquí te dejo un recurso que acaban de liberar esta misma mañana los Rangers de VSTS: http://vs2010upgradeguide.codeplex.com/wikipage

Se trata de una guía de actaulización a TFS 2010, en el que, en un documento, nos explican todos estos puntos (en inglés claro):

1 Introduction
2 Upgrade Process
3 Scenarios
3.1 Upgrading Projects from Multiple TFS 2008 servers into one TFS 2010 server
3.2 Upgrading severs when SQL Mirroring is enabled
3.3 Recovering system if upgrade fails midway
3.4 Updating Team Project Portal for an existing Team project
3.5 Splitting Team Project Collection into Multiple Collections
3.6 When I move a Team Project Collection, how do I move the reports?
3.7 Bringing Workgroup Machine inside Domain
4 Frequently Asked Questions
4.1 Can I use a TFS2008 Process Template to create team projects in TFS 2010
4.2 How can I enable Agile Workbooks in upgraded Projects
4.2.1 Enabling the Product Backlog Workbook
4.2.2 Enabling the Iteration Backlog Workbook
4.3 How can I enable Test Case Management in upgraded project
4.4 How can I enable Branch Visualization in upgrade projects
4.5 How can I enable Lab Management in upgrade projects
4.6 What is WIT Admin Tool
4.7 What happens to my custom reports created in TFS2008 post upgrade?
4.8 Will my old TFS2008 reports work post upgrade?
4.9 Can I add a new Database to my existing TFS 2010 farm?
4.10 Error bringing cloned Team Project Collection online
4.11 Move Team Project Collection Database from one Database server to another Database Server
4.12 How to enable the TFS reports if the WSS server is upgraded to MOSS server?
4.13 How to Move Team Projects from one Team Project Collection to another
5 References

 

Así que ya sabéis, si tenéis dudas, problemas, y queréis ver como actualizar vuestro entorno de TFS 2008, aquí tenéis la guia.

Por cierto la guia está referida casi en su totalidad a migrar desde TFS 2008, pero para TFS 2005 comentan en la guía que se aplican los mismos conceptos.

Suerte :)

MVP_BlueOnly¿Qué tal van esas fiestas?, jeje seguro que bien, como ya han hecho otros compañeros míos, os escribo principalmente para daros las gracias, a los que seguís el blog, a los que venís a los eventos, que leen los artículos de dotNetMania, que escriben en los foros, que mandan dudas por correo, que me llaman para dar eventos en sus grupos de usuarios, a la gente de DPE y Marketing por contar conmigo para eventos … 

A todos vosotros gracias y un fuerte abrazo, gracias a todo esto, sigo siendo MVP de ¿Team System? un año más. Otro año que espero estar a la altura :)

Hola de nuevo, pues parece que hay más regalitos de Visual Studio :) y es que además de las máquinas virtuales que comentaba ayer para hacer nuestras pruebas, nos hacen otro pequeño regalo en forma de hands-on labs.

Y es que Brian Keller, evangelista de Visual Studio, nos ha dejado siete hands-on labs para que podamos ir  aprendiendo nuevas cosas de Visual Studio 2010, laboratiorios que podremos aprovechar con las maquinas virtuales :).

Así que aquí os dejo un link dónde Brian K. (esta vez ha ido todo de Brians), nos ha dejado los laboratorios:

http://cid-8c96cc4d0756cacb.skydrive.live.com/browse.aspx/Public/Blog%20Attachments/2010%20Beta%202%20Labs?uc=3

Que os lo paséis bien :)

Fuente: http://blogs.msdn.com/briankel/archive/2009/12/23/now-available-visual-studio-2010-beta-2-virtual-machines-with-sample-data.aspx

Un pequeño regalo del señor ese vestido de rojo, de Brian Randell, y que viene en forma de máquinas virtuales totalmente listas para hacer pruebas de VSTS 2008, y por otro lado de VS 2010 Ultimate Beta 2.

Y es que, como bién sabéis, ya existían unas máquinas virtuales de VS 2008 totalmente listas para jugar con ellas, pero como bien he dicho, para jugar, tenían fecha de caducidad de este mes, así que, el amigo Brian, nos proporciona una versión actualizada de las mismas, y que vienen en 2 x 2 sabores, distintos, a saber:

Las imágenes de Virtual PC 2007/Virtual Server 2005 R2, tienen un pequeño truco, nos dan dos formatos de VMC, el acabado en –V7 son para Virtual PC, y las acabadas en –R2, son para Virtual Server (fácil no?). Estas máquinas caducan el 31 de enero del 2011.

Y más regalitos, ya que estaban liados, han creado máquinas de Visual Studio 2010 Beta 2 para poder probarlo, estas vienen sólo en 1 x 3 sabores, y ojo que vienen en plan de evaluación, y como Brian R. nos comenta, el SQL Server, nos dejará de funcionar el 9 de abril (y por ende el TFS …).

Bueno, pues ya tenéis cositas para divertiros los ratos que os dejen el resto de regalos :)

En la mayor parte de mis proyectos últimamente, estoy creando los setups con WiX, que la verdad es que es muy potente a la hora de crear setups, aunque su curva de aprendizaje es realmente empinada …

Sin embargo, con sólo tener el msi del instalable no siempre es suficiente, cuando vasa distribuir software que tiene dependencias externas, como por ejemplo, el propio .NET Framework, necesitamos, antes de instalar nuestro software, asegurarnos que el cliente tiene instaladas estas dependencias.

Aquí es dónde entran los “bootstrappers”, que básicamente son un envoltorio de nuestro msi, que verifica antes que las dependencias externas, y si no las tiene las instala.

Para este post me voy a basar en las dependencias de Microsoft, que las tenemos disponibles en el directorio de SDK cuando instalamos el propio Visual Studio 2008, si miráis  en %Program Files%\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages podéis ver los paquetes de dependencias que tenéis disponibles en vuestra máquina (comrpbadlo también en la máquina de Team Build de paso).

Dependiendo del tipo de paquete, algunos tendremos los ficheros instalables de las dependencias directamente, para incluirlos en nuestro setup final, además de unos ficheros Xml con todas las propiedades del paquete. Otra opción, que será la que usemos en este ejemplo, es que en vez de incluir todos los ficheros en nuestro setup (incrementando el peso final), le podemos decir, al generar el bootstrapper, que los coja de lo que llama el HomeSite que no es otra cosa que lo coja desde internet directamente (de la web de Microsoft por ejemplo) que es lo que yo siempre procuro hacer, para que los instalables sean lo más ligeros posibles (aunque necesitarán de internet).

Antes de incorporar una dependencia, quiero que miréis, en el directorio del paquete del Framework 3.5 por ejemplo, el fichero product.xml, abridlo con el bloc de notas mismamente  y os vais directamente al final del fichero, dónde tenéis el siguiente Xml:

<RelatedProducts>
    <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
    <IncludesProduct Code="Microsoft.Net.Framework.2.0" />
    <IncludesProduct Code="Microsoft.Net.Framework.3.0" />
</RelatedProducts>

Esto nos especifica, que si incluimos este paquete en una de nuestros bootstrapper, tenemos dependencia de Windows Installer 3.1 (que incluiremos también en nuestro bootstrapper), y que instala el Framework 2 y el 3.

Bien, ya vemos un poco de dónde vamos a sacar las dependencias externas para nuestro setup, vamos a configurar la build.

Supongamos que ya tenemos una Team Build, que compila nuestra solución, y que tiene un proyecto de WiX en la misma, y que genera un msi con nuestro instalable. Hasta aquí todo se hace con Team Build, sin necesidad de hacer nada nuevo, más que una configuración de build que compile nuestro proyecto WiX. Y supongamos que nuestro producto requiere del framework 3.5 SP1.

Por cierto, un pequeño apunte :), el paquete para bootstrapper del .NET 3.5 SP1, NO viene por defecto con ninguna instalación de VS 2008 ni siquiera con SP1, necesitaremos instalar un Visual Studio Express con SP1 preinstalado (http://www.microsoft.com/express/download/) que si que trae este paquete. La podéis instalar en una máquina virtual, y del directorio que os he dicho anes, coger el paquete directamente (directorio DotNetFX35SP1), y copiarlo a tu maquina en en directorio de paquetes.

Vale, pues lo que vamos a hacer ahora es editar nuestra Team Build, tenemos que abrir el fichero TFSBuild.proj y lo que vamos a hacer, es, en el paso de Team Build AfterDropBuild, cuando ya tengamos todo compilado, y copiado al directorio de destino, vamos a generar el bootstrapper.

Lo primero, es decir que dependencias vamos a incluir, para esto, añadimos las siguientes líneas al fichero TFSBuild.proj, justo antes del cierre </Target>:

<ItemGroup>  
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1">
      <Visible>False</Visible>
      <ProductName>.NET Framework 3.5 SP1</ProductName>
      <Install>true</Install>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
      <Visible>False</Visible>
      <ProductName>Windows Installer 3.1</ProductName>
      <Install>true</Install>
    </BootstrapperFile>
</ItemGroup>

Y, a continuación vamos a poner el código para generar el bootstrapper usando esos items:

<Target Name="AfterDropBuild">

   <!--Bootstrapper for Manager EN-->
   <GenerateBootstrapper
       ApplicationFile="MiMsi.msi"
       ApplicationName="Mi Setup"
       BootstrapperItems="@(BootstrapperFile)"
       OutputPath="$(DropLocation)\$(BuildNumber)\DirectorioDestino"
       ComponentsLocation="HomeSite"
       Culture="en"
   />

<Copy SourceFiles="$(OutDir)\MiMsi.msi" DestinationFolder="$(DropLocation)\$(BuildNumber)\DirectorioDestino"></Copy>

</Target>

Aquí le estamos diciendo, que después de haber copiado los ficheros compilados al directorio final, vamoa a generar un bootstrapper, para el msi llamado MiMsi.msi, le damos el nombre para mostrar en el bootstrapper (el título de la pantalla), la conlección de items que hemos creado antes, en OutputPath le damos el directorio dónde va a generar el fichero setup.exe (el bootstrapper), al decirle en ComponentsLocation el valor HomeSite, le decimos que cogerá los paquetes desde internet, y por último el idioma del bootstrapper (en este caso inglés).

Como último paso, copio nuestro msi, desde el directorio dónde lo ha compilado Team Build, hasta el directorio de destino dónde ya hemos generado el setup.exe, que lanza la instalación de las dependencias, y a continuación lanzaría nuestro msi.

Podéis ver que no es excesivamente difícil hacer nuestro propio bootstrapper, que instale primero nuestras dependencias, y a continuación nuestra aplicación. Tampoco es que sea un proceso muy sencillo (como sería deseable), pero con esto y la documentación de la tarea GenerateBootstrapper del MSDN podéis empezara crear vuestros propios bootstrapper: http://msdn.microsoft.com/en-us/library/ms164294(VS.85).aspx

Por cierto, todo esto realmente es MSBuild, yo he incluido el target en mi build de Team Build en el último paso, pero si no tenemos Team Build, y editando los ficheros .wixproj, podemos incluirlo en nuestra compilación local, creando, por ejemplo un target (cambiando lo de AfterDropBuild), llamado “Bootstrapper”, y ejecutandolo desde línea de comandos con MSBuild :

msbuild MiWix.wixproj /target:Bootstrapper

Cambiando los directorios necesarios también, lógicamente :)

Bueno espero que os haya sido de ayuda, aunque es un poco complejo de seguir, cualquier duda aquí me tenéis.

con 2 comment(s)
Archivado en: ,

Buenas noticias para todos aquellos que usamos la plantilla de Scrum de Conchango, y es que alguien en el ALM 09 me preguntaba acerca de la plantilla de Scrum de Conchango para TFS 2010, y mi respuesta era que estaban trabajando en ella pero aún no había nada público.

Pues eso era hasta hoy, ya han puesto la Beta 2 de la nueva plantilla disponible para descargar, la verdad es que le han dado una vuelta grande, y la han agregado mucha funcionalidad nueva, aunque eso supone un poco más de complejidad en su uso.

Esta Beta 2 de la plantilla, está diseñada para TFS 2010 Beta 2, y está disponible tanto para x86 como para x64, habrá que probarla, aunque la verdad, es que la plantilla de MSF Agile 5.0, me parece bastante buena también para hacer Scrum (se ve la dirección de MSF Agile hacia Scrum …)

En fin, que aquí os dejo el hilo del foro dónde la tenéis disponible:

Scrum for Team System version 3 Beta 2

Os contaba hace bien poquito el tema de la nueva versión de TFS Basic, como una nueva versión de TFS para todos, pero realmente, y por desconocimiento en ese momento, os mentía … pero no mucho.

La cosa es que los que os bajéis el nuevo TFS 2010 Beta 2, no os volváis locos buscando el paquete de TFS Basic, realmente es una opción de configuración a posteriori de la instalación.

Los que hayáis jugado un poco con el nuevo TFS 2010 Beta 1 (y si habéis sido rápidos con la Beta 2), ya sabréis que ahora, no se configura nada durante la instalación, y que es a posteriori, una vez acabada, cuando se nos muestra un wizard con las opciones de configuración, y es aquí dónde aparece la opción de configuración Basic:

image

Cuando terminéis de instalar (incluso en Windows 7), os aparecerá esta pantalla (bueno algo distinta que yo ya lo tengo configurado), y podéis seleccionar la opción Basic.

Como ya os dije, funciona sobre sistemas operativos de cliente y sobre SQL Server Express, lo que me ha gustado además del paquete de instalación, es que si no tienes instalado ni SQL Server Express, ni configurado tu IIS, durante el wizard de configuración te los instala y configura :)

Además, como podéis ver (la captura es de mi Windows 7 x64), también tenemos las Team Builds disponibles con el TFS Basic.

Así que nada, ya tenéis esta nueva versión de TFS para vuestros entornos locales de desarrollo.

image001

Siiiiiiiiiiii, ya la tenemos disponible :) y con nuevo logo como podéis ver en la cabecera jeje.

Pues nada ahora a probar todo lo nuevo, y lo primero es el cambio de SKUs y es que tenemos nuevos nombres … Visual Studio 2010 Ultimate … que se correspondería con la “antigua” Visual Studio Team System.

Y como podéis ver el primer cambio es que ya no existe nada llamado Team System, así que el rey ha muerto, después de todo este tiempo Team System desaparece como nombre.

Aunque el ecosistema sigue estando hay, tenemos nuevos nombres de SKU:

  • Visual Studio Professional 2010 con MSDN, con las herramientas “básicas” de Visual Studio para Silverlight, Sharepoint, ASP.NET, etc., etc. Vaya lo que antes era la Professional.
  • Visual Studio Premium 2010 , en la que tenemos herramientas como las herramientas de profiling, de cobertura de código, las herramientas de DB Pro, métricas de código, análisis de código estático, etc (a ver si consigo el listado exacto)
  • Visual Studio Ultimate 2010  que es la equiparable a la antigua Team Suite, con todo el tema de IntelliTrace (depuración histórica), UI Test Automation, herramientas UML, ….
  • Visual Studio Test Elements 2010 , con la gestión de casos de test, testing manual etc, en definitiva las herramientas de gestión de casos de Tests
  • Visual Studio Team Lab Management 2010 , para la gestión de nuestros entornos de test virtuales de los que ya os iremos hablando.
  • Load Test Virtual User Pack 2010 (para los entornos de testing distribuidos)
  • Visual Studio Team Foundation Server 2010, que tendrá la opción de instalación completa o de la que ya hablé de TFS Basic Installation.

Como podéis ver es un cambio grande de nombres, esto no significa que Microsoft se aleje del ALM, sólo desaparece la denominación Team System, para pasar a ser simplemente Visual Studio ALM, así que … viva el Rey.

En fin, veremos como va avanzando esto y ya os iré contando más novedades según vayan saliendo. Yo por ahora tengo una opinión al respecto … pero a la espera de ver como se desarrollan los acontecimientos es reservada jejeje.

En cuanto a los suscriptorers de MSDN, los cambios afectan así:

  • Los que tengáis MSDN Professional y que actualmente tenéis VS Professional 2008, recibiréis Visual Studio Professional 2010
  • Si tenéis MSDN Premium y que actualmente tenéis VS Professional 2008, recibiréis Visual Studio Premium 2010.
  • Si tenéis MSDN con Team Suite o una Team Edition (creo que vale cualquiera pero tengo que confirmar), recibiréis Visual Studio Ultimate 2010

Así que ya sabéis, si queréis Ultimate y no tenéis ya una suscripción con Team Edition, actualizar a VSTS 2008 Development Edition, y conseguiréis la Ultimate.

Por ahora a descargar la Beta 2 (los que tengáis suscripción de MSDN la podéis descargar ya, el resto el día 21 de octubre) y a empezar a probar que tenemos, dónde lo tenemos y que tal funciona todo :)

Para ver más respecto a esto, podéis pasaros por el nuevo site de Visual Studio:

http://msdn.microsoft.com/en-us/vstudio/default.aspx (aún no aparecen los cambios, paciencia … no tardará mucho)

Ah y por cierto, una fecha … 22 de marzo 2010 … fecha de lanzamiento oficial de Visual Studio 2010 :)

con 4 comment(s)
Archivado en:

Hace poco, revisaba en un artículo de la revista Dotnetmania los 12 pasos para mejorar el software de Joel Spolsky. Estos pasos vienen a preguntarnos básicamente si trabajamos, entre otras cosas, en un entorno adecuado al desarrollo de software.

En estas, por orden de importancia además, nos cuestionan si tenemos un repositorio de código fuente, entornos de testing, y similares. Cuándo hablo acerca del ciclo de vida en charlas, o a veces tomando unas cervezas con colegas de profesión (si, a veces somos muy geeks), siempre surge el eterno dilema de “si todo eso está muy bien, pero sólo las grandes empresas tienen esa capacidad de infraestructura”.

Y en parte tienen razón, miremos el entorno de Visual Studio Team System, que como habréis podido adivinar es uno de mis preferidos. Hasta ahora necesitábamos un servidor Windows, un SQL Server, Sharepoint y Reporting, y comprar, instalar y mantener todo esto, no es trivial, por propia experiencia lo digo :)

Si, es cierto que hay otras opciones en el mercado, y que son muy buenas y más “baratas”, como puede ser SourceSafe, Subversion, Cruise Control.NET, Nant, nUnit, MbUnit, y seguro que muchos más que ni siquiera conozco.

Pero a veces, como me dice César de la Torre cuando vamos de tiendas de electrónica “lo barato sale caro”.

También tengo experiencia en bastantes de esas otras herramientas, y no voy a negar que algunas me gustan mucho, pero sin embargo, cuando salió a la luz Team Foundation Server como entorno que integraba muchas de estas funcionalidades en el propio Visual Studio me pareció un gran paso adelante y una gran apuesta de la Developer Division de Microsoft.

Pero como todos los inicios, la verdad es que montar TFS 2005 era un poco doloroso, con TFS 2008 la cosa mejoró, pero seguía siendo un entorno que iba para empresa media hacia arriba, por temas de costes principalmente.

Muchos de los desarrolladores que trabajan de modo autónomo no podían permitirse este entorno, si, se que existe TFS Workgroup, iniciativas como Bizspark de Microsoft que te dan licencias MSDN para start-ups, pero para alguien que trabaja en casa, que tiene uno o dos ordenadores, y (si es bueno), muchos proyectos, no podía permitirse montar y mantener un servidor aparte (con todo SQL Server, Sharepoint Services, etc) para manejar todo su ciclo de vida.

De ahí TFS Basic Installation, si, ya se ha hablado de el en muchos sitios, no estoy anunciando nada “nuevo”, pero quería dar mi visión personal de porque lo considero tan importante.

Y es que este nuevo TFS, del que todavía tienen que descubrirnos los precios de licencias, promete ser asequible para este tipo de perfil de desarrolladores autónomos y de pequeñas empresas, que no nos olvidemos, desarrollan software, y por tanto tienen las mismas necesidades de gestión de ciclo de vida que las empresas, aunque no manejen tanta información.

Además esta nueva versión se instala en sistemas operativos de cliente, con lo que no necesitamos montar un nuevo servidor, lo podemos montar en nuestra propia máquina de trabajo. Y no necesitamos pagar por un SQL Server, ya que funciona sobre SQL Server Express.

Por supuesto, tiene sus limitaciones, no disponemos de Sharepoint ni de Reporting, pero bueno, para un desarrollador autónomo y pequeñas empresas, esto no lo veo como una gran limitación la verdad.

Con este TFS Basic Installation, tenemos tanto control de código fuente, gestión de tareas (Work Items), y gestión de compilaciones (Team Builds), y todo integrado desde el propio entorno de Visual Studio Team System, lo cual para mi es una ventaja muy grande respecto a otros entornos, en los que, aunque todo se habla sin problemas, tenemos que hacer que se hablen entre ellos a mano.

No hay que olvidar también, que partimos de la base de un Team Foundation Server, con lo que si ese desarrollador autónomo, o esa pequeña empresa crece (ójala), no tenemos que migrar todo a un nuevo entorno, simplemente nos pasaremos aun TFS completo (pagando las correspondientes licencias claro), y mantendremos toda nuestra información histórica.

En fin, que no quería dejar pasar esta ocasión de recomendar a todos esos desarrolladores autónomos, pequeñas empresas, o gente que tenéis vuestros pequeños proyectos personales, que déis un vistazo (cuando esté disponible) a este nuevo TFS Basic Installation.

S itodo esto os interesa os recomiendo el post en el blog de Brian Harry (en inglés)

http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx

Pues eso, que yo también me uno.

Cuando será el día que algunos se den cuenta de los beneficios de la innovación :( 

http://aldea-irreductible.blogspot.com/2009/10/la-ciencia-en-espana-no-necesita.html

 

Si vale, de acuerdo,el entorno de pruebas unitarias de Visual Studio Team System, no fue el primero, ni el único, ni quizá sea el más rápido ejecutando, aparte de todo el código existente que ya tengáis con Nunit o MbUnit por ejemplo.

Y esto es un poco problema a la hora de integrarlo todo con Visual Studio Team System, tener que ejecutar las pruebas desde otro entorno (bueno, para esto también hay otras soluciones), integrarlo con las Team Builds y publicar los resultados al Team Foundation Server, en fin, cosas que con la ejecución de test unitarios desde VSTS queda resuelta.

Bueno, una de las novedades de VSTS2010 trata sobre esto, y es la apertura a la integración de frameworks de pruebas unitarias de terceros. Esto es, poder ejecutar pruebas unitarias de VSTS, NUnit, MbUnit, y cualquier otro framework que se quiera aprovechar de esto, dentro del propio entorno de VSTS, y  publicando resultados al TFS.

¿Suena bien verdad?. Vamos a ver un pequeño ejemplo, por ahora, el único framework, que yo conozca, que está preparado para esto es Gallio/MbUnit en su versión 3.1.313: http://www.gallio.org/Downloads.aspx

Simplemente nos descargamos el framework de Gallio y nos lo instalamos.

A la hora de crear, lo podemos crear o bien del tipo habitual de pruebas de VSTS, o bien un proyecto de pruebas del framework Gallio, da igual, y esta es una de las ventajas, podemos crear un proyecto de pruebas de VSTS, y agregarle tanto pruebas de VSTS, como de Gallio, y todas se ejecutarán mediante VSTS.

Para mezclar pruebas, vamos a crear un proyecto de pruebas de  VSTS, ya sabéis, nuevo proyecto, en lenguaje el que queráis, en las plantillas de tipo

En la propia plantilla nos crea un método de pruebas, bueno, tampoco quiero enseñar aquí a hacer pruebas unitarias :) así que simplemente dejad la prueba de ejemplo, y le ponemos simplemente un Assert.IsTrue(true) … ¿qué buen modo de hacer funcionar una prueba eh?

La ejecutamos, y bueno, lo esperado, se ejecuta y funciona todo ok.

Vale, ahora vamos a crear, dentro de este mismo proyecto, una clase vacía, y agregamos al proyecto, una referencia de .NET al Framework de Gallio (en referencias de .NET la que pone simplemente “Gallio” y la que pone “MbUnit”) .

En la clase agregamos la sentencia using: “using MbUnit.Framework;”

La clase la marcamos con el atributo de MbUnit que indica que es una clase de test: “[TestFixture"]”, y creamos un método nuevo, que será nuestro método de test, y le marcamos con el atributo “[Test"]”, dentro del método, la sintáxis es la misma que en los test de VSTS: Assert.IsTrue(true);

Lo primero que podemos ver, es que si vemos la lista de pruebas unitarias (y la refrescamos), nos aparecen dos, la de VSTS, y la de MbUnit, las dos juntitas :) … pero sin mezclarse, si nos fijamos un poco más, veremos que tienen iconos distintos para indicarnos que son de distinto framework:

image

Bueno si ejecutamos, vemos que se ejecutan todas y que tenemos sus resultados en el mismo conjunto de resultados de pruebas que podemos publicar, etc.:

image

Esto lo tenéis funcionando ya en la Beta 1, con un pequeño “pero” … a mi me falla cuando ejecuto las pruebas desde línea de comandos con MSTest.exe, bueno y?, pues que en las Team Build se ejecutan mediante esa línea de comandos, y que no es que sólo me fallen las de MbUnit o cuando hay mezcladas, no se muy bien si es mi maquina, pero cuando instalo Gallio me falla siempre la línea de comandos :( pero bueno, supongo que para siguientes Betas lo arreglarán, si no, efectivamente, esto no vale de nada :(.

Bueno aunque ha pasado casi un mes desde mi vuelta de las vacaciones, lo cierto es que no he podido escribir antes … ya se sabe como es la vuelta al trabajo … Pero hoy que he arañado un rato, voy a haceros un pequeño resumen/relato de mi viaje, ha sido tan divertido e intenso, que no puedo más que aspirar a eso, a un resumen.

Este año el destino elegido, cambiaba un poco, aunque algunos colegas despistados seguían pensando que estaba en Groenlandia, no, el destino estaba bastante lejos de allí, y más al norte que el año pasado, en Svalbard (os recomiendo que vayáis quitando zoom en el mapa para que veáis donde está),más concretamente, subiendo todo Noruega hacia arriba y a unos 1000km del Polo Norte. Una isla de administración noruega, aunque con tratado que permite la explotación de sus recursos por varios países.


Ver mapa más grande

Lo primero que te sorprende (para los que no lo habíamos visto antes), es, al llegar a eso de las 0:00, el sol, en esas latitudes, y aunque era el 17 de agosto, el sol no se llega a esconder en ningún momento, lo que era un poco incómodo a la hora de ir a dormir los primeros días, aunque en seguida te acostumbras.

grupo En cuanto a mis compañeros de viaje, este año repetía con Tierras Polares, y además con Ángel Sánchez “Piza”, como guía, y amigo mío de hace mucho tiempo, que además de ser un excelente guía y compañero de viaje, es una persona con la que cada día aprendo más cosas. El resto del grupo lo formaba principalmente los manchegos amigos de Piza, de Ciudad Real, así como una pareja de Cataluña, y otra persona de Cataluña. La verdad, después de la experiencia del año pasado, el listón estaba alto, pero el grupo de este año era inmejorable, las risas y el buen rollo han sido continuos, y aunque este tipo de viajes pueden ser propensos a algún “roce”, por el cansancio, las condiciones, tanto tiempo juntos, en nuestro caso, han sido todo risas y buen rollo.

Y bueno que decir de Svalbard, un paisaje totalmente distinto al de Groenlandia. Si el año pasado teníamos un paisaje verde (bueno y blanco en el hielo), este año nos esperaba algo más “extremo”, siendo todo roca y hielo allá donde mirásemos, lo cierto es que te da la sensación real de que estás muy muy lejos de todo, y en un ambiente más hostil que en Groenlandia. Además, esta es la tierra del oso polar, considerado el mayor depredador terrestre (con el permiso del oso Kodiak), lo cual implica ciertas cosas, como la obligación de que el guía lleve un rifle en todo momento, no, no se pretende disparar al oso, pero si ahuyentarlo, aunque la verdad es que no tuvimos la suerte/mala suerte de encontrarnos a ninguno, por mucha ilusión que le hubiese hecho a alguna del grupo … lo cierto es que a algunos de nosotros no nos hacía gracia encontrarnos con un oso polar, en todo caso nos hubiese gustado ver a alguno desde el barco de vuelta.

paisajeLógicamente, la pregunta que todo el mundo me hace es “ufff que frío habréis pasado ¿no?”, y sí, se pasa frío, pero tampoco extremo, hemos tenido mucha suerte con el tiempo y no perdimos ningún día, si que nos llovió y hubo viento en algún momento, y también es cierto que hubo muchos días nublados, pero en general el clima nos ha respetado bastante, lo cual se agradece en este tipo de viajes por estas latitudes.

¿Y cómo era el día a día?, pues nada, levantarse prontito, pero sin exagerar, que estamos de vacaciones jeje, a eso de las 8:00 nos levantábamos, desayunábamos tranquilamente, recogíamos el campamento, y ale, a remar unas horitas, por supuesto íbamos haciendo paradas, para descansar, picar algo, que iba desde gominolas, frutos secos, chocolate a embutidos, hambre no hemos pasado no. Una vez que llegamos al punto de montar el campamento, pues nada ,a buscar agua, un tiempecillo de descanso, merendar, y un poco más tarde cocinar la cena, cenar y echarnos unas risas (muchas más bien), con las historias de la mancha, los chistes, y las bromas, y así hasta la hora de dormir, en la que nos esperaba una sorpresa en los campamentos, y es que es obligatorio hacer guardias durante la noche, por si aparece algún oso polar, despertar al guía para que lo ahuyente con el rifle.

Así que, con las parejas del kayak, nos dividimos las horas de la “noche” (os recuerdo que hasta casi finales de agosto allí no hay noche de verdad), para hacer las guardias en turnos de dos horas, aunque esto puede parecer un poco cansado y aburrido … lo es … pero la verdad es que con el tema de las guardias también salían momentos divertidos, especialmente en el momento de repartir los turnos jeje.

trekkingAdemás de remar, también hicimos algunos trekking, incluidos dos en los alrededores del cuarto mayor glaciar del mundo, la subida al pico Pyramiden, aunque sólo Fernando, uno de los del grupo de manchegos :) consiguió coronar, por la dificultad de la última parte del pico, los demás preferimos quedarnos un poco más abajo comiendo unos frutos secos.

pyramidenTambién aprovechamos el último día, para visitar la ciudad abandonada de Pyramiden, un antiguo asentamiento ruso minero, y es espectacular ver como dejaron todo tal cual estaba cuando salieron de allí (como si hubiesen salido con prisa).

Y aquí ya en Pyramiden nos vino a buscar el barco, dónde pudimos tomar unas cervecitas, celebrar mi cumpleaños :), y comer una barbacoa de carne de ballena, y de aquí de vuelta a Longyearbyen, dónde pasamos el último día visitando esta ciudad, y aprovechando para darnos una buena cena en un restaurante de allí, bien regada con unas cuantas botellas de Marqués de Cáceres.

Bueno, se me dejo muchas cosas la verdad, pero lo mejor es que veáis las fotos (aunque aún no he heco una buena limpia) en: http://www.flickr.com/photos/lfraile/sets/72157622340817135/

 

 

Y si tengo que resumir aún más, no puedo decir más que ya estoy deseando volver de viaje con un grupo como este, y con todo el estupendo trabajo que hace la gente de Tierras Polares, y poder ver y descubrir nuevos paisajes como estos.

con 3 comment(s)
Archivado en:

Pues si otro eventito, y es que el 16 de octubre se celebrará en Tarragona un nuevo CodeCamp, y allí estaré, con mis compañeros de MVP (aKa el trío calavera), Bruno Capuano y Rodrigo Corral.

Y como siempre que nos juntamos el trío, pues de que vamos a hablar, ya nos conoceis, somos unos pesaos :) Efectivamente estaremos hablando de las novedades de Visual Studio Team System 2010, bueno de todas no, que no nos daría tiempo, sólo de algunas ….

Pero no os preocupéis, que si no os interesa VSTS2010 habrá un montón más de ponencias interesantes, podéis ver el listado completo aquí: http://www.codecamp.es/Sesiones.aspx

Así que ya sabéis, a ver si nos vemos por allí.

 

Hola a todos de nuevo, ufff han sido unas largas vacaciones blogueras (que no reales) desde la última vez.

Y bueno, que decir, las vacaciones (ahora si reales) de por medio, de nuevo en kayak, pero esta vez un poquito más lejos (Longyearbyen), pero esa es otra historia que ya os contaré …

Ahora ya de vuelta, aún con bastante lío de cosas, volvemos también de las vacaciones de MadNUG, con un nuevo evento, a cargo de Daniel Matey, en el que nos hablará de virtualización.

El evento será el 14 de octubre, en las oficinas de Microsoft en Madrid como siempre, y para más datos del evento e inscribiros podéis consultar el blog de MadNUG: [Evento] 14 Octubre- ¿Quién ha virtualizado mi solución-

En cuanto a mi … espero poder volver a escribir más habitualmente por aquí en cuanto que vaya dando salida a todos los frentes que tengo abiertos, y traer novedadesd e VSTS 2010, ALM, metodologías, y todas esas cosas que ya sabéis que me gustan.

Un saludo para todos.

con 2 comment(s)
Archivado en:

Pues sí, además de Team Foundation Server 2010, también se empiezan a vislumbrar futuras plantillas que utilizen las nuevas capacidades.

Y una de estas, y que a mi me gusta, es la plantilla Scrum for Team System, de Conchango, que ya nos anuncian la Beta 1 de su plantilla para TFS 2010. Y nos lo anuncia Simon Benett en su blog, títulando el post 3.0 from 30,000 feet

En este post nos cuenta algunas de las novedades de la versión 3.0 de su plantilla, que estará perparada para TFS 2010:

  • Nuevo modelo de QA, aquí no cuenta mcuho ya que dice que nos hablará de ello más adelante.
  • Soporte para múltiples equipos en múltiples sprints que permiten utilizar esta plantilla para poryectos más grandes con múltiples equipos
  • Mejoras en la plantilla para la planificación, aquí tengo ganas de ver que nos traen, ya que su herramienta Task Board me gusta bastante
  • Mejoras para reforzar el “Done”, ya sabéis que uno de los puntos críticos de Scrum es la definición de cuando sprint está completo, también aquí nos van a traer mejoras para saber cuando el sprint está completadop.
  • Soporte para Lab y Test Manager features (Camano) esto va a estar interesante ….
  • Mejoras en la gestión de los estados de los Work Items, los que ya usáis TFS y los estados de Work Items sabéis que esto a veces es complejo, aquí anuncian mejoras que nos permiten “calcular” las transiciones de estados, hmmm, esto tengo que verlo.
  • Descomposición de tareas, aunque en la versión 2 de la plantilla mejoraron, y sobre todo si usáis el Task Board, si que es cierto que a veces es dejar sprint Work Items huérfanos por error, o perder la composición del PBI, aquí también anuncian que han hecho mejoras para evitar estos errores.

    Y bueno esto es lo que nos anuncian, habrá que estar al tanto :)

  • Bueno, leyendo los posts de Bruno acerca de los diagramas de análisis de capas con VSTS 2010, y con mi solución de pruebas de las opciones de análisis de interacción entre capas, he descubierto un pequeño ¿bug?.

    Y es que, una situación muy común en las aplicaciones n-capas, es, que la capa de usuario, como la capa WPF del ejemplo de Bruno, no llama directamente a la capa de negocio, si no a un servicio (en mi caso WCF).

    En el ejempli del análisis de interacción de capas, llamábamos a un servicio WCF, que estaba dentro de la propia solución, en un proyecto de tipo web, pero siendo un servicio WCF, que es fácilmente descubierto, automáticamente a la hora de agregar la referencia al servicio.

    Pues bien, si creamos un nuevo diagrama de capas (layer diagram), siguiendo las instrucciones del post de Bruno, agregamos todas nuestras capas y las relacionamos con los proyectos (incluyendo el servicio), y le damos a la opción Generate dependencies, oh, sorpresa, la dependencia de la capa de usuario con el servicio WCF no la muestra.

    Habrá que investigar si es un bug o es “by design”, para mi es un bug, ya que es una dependencia más, ¿a vosotros que os parece?.

    ¡AL FIN!!!!!! una de las mejoras que llevabamos pidendo desde hace tiempo, era la integración de Expression Blend con TFS, ya que, para poder integrar bien el rol del diseñador, experto UX, o cualquier otro que use esta herramienta en su trabajo, era básico que pudiesen acceder, al menos, al repositorio de código fuente de TFS 2008.

    Pues bien, en su versión 3, Expression Blend ya se integra, no tengo ahora mismo instalado Blend, pero os dejo una captura sacada del blog de Ed Hintz de esta integración.

    expressionblend3-tfs_2[1]

    Bueno, lo primero que veo es que por ahora sólo parece que se integre con el Version Control, nada de Work Items, informes, builds, etc como el Team Explorer, pero es un buen comienzo :)

    Otra cosita de apuntar, es que para que esta integración funcione correctamente, es que hay que meter este patch KB967483, en el servidor de TFS 2008.

    Aquí os dejo esto para todos los equipos que uséis Blend 3 y TFS 2008.

    Actualmente, la gran mayoría de desarrollos (siempre hay excepciones) se desarrollan con arquitecturas de n-capas. Esto nos da muchas ventajas, que no creo que hagan falta ser enumeradas ahora, sin embargo, todas estas interacciones, especialmente capas de servicios y capas de acceso a datos, son un punto susceptible a los cuellos de botella.

    Una de las novedades del Code Profiler de Visual Studio Team System 2010, es el análisis de interacción entre capas.

    Vamos a hacer un pequeño resumen de como utlizarlo, y un par de conclusiones acerca de el, siempre sin olvidar que estamos ante una Beta 1 ….

    Empezemos con el ejemplo más sencillo.

    Supongamos una aplicación WPF, que llama a una capa de lógica de negocio (con una referencia directa), que a su vez llama a la capa de datos, que se vale de un nuevo ensamblado con las entidades y el acceso a datos mediante Entity Framework, ¿sencillo no?.

    A continuación, con nuestra solución abierta (recordemos que estamos en VSTS 2010), seguimos los siguientes pasos:

    1. En el menú Analyze, seleccionamos Launch Performance Wizard
    2. En la siguiente pantalla siguiente nos preguntará que tipo de profiling queremos hacer, seleccionaremos o bien Sampling  o bien Instrumentation.
    3. Lo siguiente es sobre que proyectos queremos hacer sampling o instrumentación, por ahora, sólo seleccionaremos nuestra aplicación WPF.
    4. Lo último que nos preguntará es si queremos lanzar el profiler cuando cerremos el wizard. Por ahora no queremos ejecutarlo, así que deseleccionamos esta opción.
    5. Ahora vamos a configurar el tier profiling, para esto, pulsaremos botón derecho en la sesión de profiling que hemos creado, y seleccionamos las propiedades:image
    6. Dentro de las propiedades tenemos una nueva opción Tier Interactions , simplemente nos movemos a esa opción y activamos el checkbox.
    7. Ya sólo nos queda pulsar el botón de ejecución de la sesión de profiling: image

    Una vez ejecutada la sesión de profiling, al cerrar la aplicación, se nos genera el informe del profiler, en el menú de sub-informes disponibles, nos debería aparecer un nuevo sub-informe Interactions:image

    Cuando pulsemos en el, se nos mostrará un informe de las interacciones, en mi caso, este es el resultado (recordad que estamos con 3 capas):

    image

    Como podéis ver en el informe, vemos que ha habido una única interacción entre capas, correspondiente a una consulta de SQL Server (la consulta se ve en la parte inferior del informe), y los tiempos de ejecución.

    Uno de los primeros puntos de feedback (que ya he dado), es que en este caso de varias capas, no me dice que capa ha sido la que ha ejecutado la consula, ni el método ni nada, con lo que, a pesar de ser muy buena información, me faltarían datos para saber donde tengo que atacar.

    Vamos a ver el siguiente escenario, este es básicamente igual que el anterior, pero en este caso, entre la capa de presentación WPF, y la capa de negocio, vamos incluir una capa de servicios WCF, simulando un entorno distribuido.

    Los pasos de creación de la sesión de profiling son los mismos, pero, en este caso, debemos seleccionar tanto la capa de usuario (WPF), como la de servicios (WCF), en el listado de proyectos que vamos a examinar, durante el wizard de creación de la sesión.

    El resto de los pasos son los mismos, sin olvidar de activar el check de interacción entre capas. Además aprovecho para comentaros, que cuando agreguéis a posteriori, a una sesión de profiling, nuevos proyectos, activarlo de nuevo, ya que es una propiedad de cada uno de los ensamblados a examinar.

    Ahora, cuando ejecutemos la sesión de profiling, se nos lanzará tanto el interfaz de usuario, como el servicio WCF.

    Una vez terminada la sesión de profiling, si nos movemos al sub-informe de interacciones, tendremos la siguiente información:

    image

    Bueno, lo primero es que me muestra la información de las llamadas a base de datos y al servicio duplicadas (en el código solo hay una a cada capa).

    Y básicamente la información es la misma que antes, en este caso además, tenemos información del servicio al que se ha llamado, pero no el método que se ha ejecutado, ni que capa ha hecho la llamada :( cosas de la Beta supongo.

    Como podéis ver, esa información, en aplicaciones n-capas, es muy valiosa, esperemos que esos puntos de información que he comentado, cambien en la versión final.

    En cualquier caso, es una funcionalidad que me gusta :).

    Más artículos Página siguiente >