Archivo de la categoria 'Code Quality'

Utilizando wildcards de la forma \**\ en CruiseControl.Net

English Version

Esta 煤ltima semana estuvimos trabajando en nuestro Build Server utilizando CruiseControl.Net para permitir la posibilidad de ejecutar m煤ltiples Test / Code Coverage tasks para dos o m谩s soluciones.

Una vez que tenemos configurado el MSBuild Project para ejecutar, por ejemplo, un set de dos o m谩s RunTests / RunCoverage tasks, necesitamos fusionar estos resultados al log de MSBuild luego de su ejecuci贸n.

Entonces, nuestro primer intento fue modificar el archivo ccnet.config para poder fusionar los archivos generados por estas tasks usando el mismo patr贸n utilizado por MSBuild, quiero decir, usando /**/, algo como esto:

<merge>
    <files>
        <file>D:\srv\ccnet\logs\project\**\*.trx</file>
        <file>D:\srv\ccnet\logs\project\**\*.cvg</file>
    </files>
</merge>

En ese momento nos dimos cuenta, que CruiseControl.Net no posee esta funcionalidad, 煤nicamente nos permite la utilizaci贸n de Wildcards de la forma convencional, por ejemplo D:\srv\ccnet\logs\project\theProject\*.trx, y como el c贸digo fuente de CruiseControl.Net est谩 disponible, me puse a escribir algunas l铆neas de c贸digo para modificar el assembly ThoughtWorks.CruiseControl.Core para que nos permita utilizar /**/ como lo hace MSBuild.

En este post van a encontrar el c贸digo fuente de un Spike que escrib铆 con una serie de test para implementar esta funcionalidad y el c贸digo fuente del archivo WildCardPath.cs actualizado que forma parte del Core de proyecto CruiseControl.Net.

  • Solucion Spike con unit tests [Download]
  • El archivo donde se encuentra la clase WildCardPath del assembly Core de CruiseControl.Net [Download]

Una vez actualizado el proyecto Core con esta nueva implementaci贸n, tendr铆an que seguir los siguientes pasos para dejarlo con esta nueva funcionalidad

  1. Compliar el Core Project
  2. Parar el servicio de CruiseControl.Net (ccservice)
  3. Reemplazar el assembly ThoughtWorks.CruiseControl.Core por el Nuevo
  4. Levantar nuevamente el servicio

Y eso es todo, a usar wildcards como en MSBuild :)

Microsoft Source Analysis for C# 4.2 publicado

English Version

Microsoft ha publicado una gran herramienta llamada Microsoft Source Analysis for C#, conocida tambi茅n como StyleCop.

Esta herramienta nos permite controlar y mejorar la calidad del c贸digo que escribimos. Esta totalmente integrada con Visual Studio, lo que quiere decir que con un simple click derecho en nuestra soluci贸n, proyecto o file, podemos comprobar nuestro c贸digo teniendo en cuenta las mejores pr谩cticas definidas en una serie de reglas como se muestra a continuaci贸n.

Pueden encontrar una descripci贸n mas detallada (ingl茅s) en el siguiente post: Announcing the release of Microsoft Source Analysis for C# y descargarse el instalador desde aqu铆.

Otra de las opciones que nos brinda esta herramienta, es la posibilidad de personalizar qu茅 reglas van a ser ejecutadas, utilizando la configuraci贸n que viene integrada en la UI.

Por 煤ltimo, otra punto importante, es que nos permite integrar este chequeo en nuestro proceso de build por medio de MSBuild. Les recomiendo este blog post (ingl茅s) de Jason Allor’s en la p谩gina de Source Analysis donde 茅l explica c贸mo hacerlo.

Y otro post intereando del MSBuild Team Blog , donde anuncian este release.

Disfrutenlo y diganle adios a los documentos con est谩ndares de c贸digo :)