Mostrando las entradas con la etiqueta Visual Studio. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Visual Studio. Mostrar todas las entradas

lunes, junio 25, 2007

Herramientas para Team Foundation

Team Foundation nos ha ayudado bastante desde el trabajo del día a día hasta el seguimiento de proyectos y definición de procesos, por si sólo Team Foundation es una gran herramienta, pero la hemos ido haciendo aún mejor con ciertos productos de terceros y claro las personalizaciones que le hemos hecho. Aquí presento herramientas de las que usamos o conozco, sin embargo la lista completa esta aquí.

  1. Scrum for Team System del mismo Ken Schwaber y Conchango. TFS viene con MSF para CMMI y MSF Agile, sin embargo ninguna nos gusto. En lugar de trabajar desde cero en la definición de un nuevo proceso, tomamos Scrum For Team System que es un template que provee otros tipos de Work Items y flujos de trabajos. Les platico las diferencias más importantes.

    Ahora tenemos un Product Backlog donde vamos metiendo todos los requerimientos del cliente. Cada ítem dentro del Product Backlog en algún momento se relacionará con un Sprint, los cuales a diferencia de las iteraciones de MSF tienen una fecha de inicio y fecha de fin. Esos mismos ítems los relacionamos con n ítems más del Sprint Backlog donde tenemos ahora si actividades más técnicas.

    Los ítems del product backlog se asignan a un equipo de desarrollo y los Sprint Backlog Items se asignan a una persona. Una de las adaptaciones que hicimos es que estos work ítems puedan asignarse a un par para decir, está tarea la hacen Mike y Tea en lugar de que ambos trabajen en ella y sólo aparezca uno de los dos. Esto aún no tiene ningún efecto en reportes ni nada por el estilo, pero ya sería cuestión de luego usarla como filtro o para agrupaciones, finalmente la información ya se está guardando.

    Trae nuevos reportes como Product Burndown y Sprint Burndown que te muestran el progreso y una tendencia del proyecto o iteración actual respectivamente. Aunque muchos reportes se apegan más a nuestra metodología, tengo que decir que extraño algunos de MSF.

    Resumiendo Scrum for Team System nos permite ejecutar nuestros proyectos de una forma más natural que MSF.

  2. Continuos Integration de Vertigo Software y con mejoras de Daniel Cazzulino de Clarious Consulting y miembro del equipo de desarrollo del MCSF es un simple WebService que se suscribe al evento Check-In e inicia el proceso de Build. Requiere un poquito de configuración, pero una vez jalando es una chulada. Lo usamos en todos nuestros proyectos en los que configuramos el build. Ya he puesto otros posts de Integración Continua.
  3. TeamPlain de Devbiz empresa recién adquirida por Microsoft es un website que se conecta a servers de TFS para poder hacer casi todo lo que haces desde TFS a excepción de checkouts y checkins. No he probado si podemos iniciar un build, sin embargo, para lo que lo usamos es ver WorkItems, reportes, archivos, etc. y para esa función es una excelente herramienta con una interfaz sexy y muy intuitiva. Aún no probamos el 2.0 RC que ahora usa Ajax.

    Esta herramienta es gratuita desde que Microsoft adquirió devbiz.

  4. Team Foundation Power Tools incluye a su vez 4 herramientas.
    1. Nuevas políticas para los check-ins. A mí me han resultado muy útiles la que forza los comentarios para el check-in y la de asociar un WI que con los resultados de un Query específico de tal forma se puede forzar a que sólo le den check-in usando WIs dentro del proyecto al que pertenece el código y asignados a ese usuario y así no mezclen por error.

      Hay otros tantos como el Forbidden Patterns que te permite decirle que archivos no deben subirse usando RegEx que aún no he tenido oportunidad de conocer.

    2. El Test Build Pack nos permite seleccionar todo un dll en lugar de tener que escoger un vsmdi para nuestras pruebas, esto se integra con los Team Builds por lo tanto se puede usar con CI que les mencionaba en el punto 2. Yo no he tenido necesidad de usarlo y me gusta más la opción de especificarle los nodos de las pruebas del vsmdi que quiero utilizar y esto me permite buena flexibilidad para especificar que ciertas pruebas se automatizaran y otras no deben correr en nuestro servidor de Builds.
    3. El famoso Process Template Editor de Joel Semeniuk de imaginet se integra ahora con VS para editar las plantilas ahí mismo y usa DSL para definir los flujos que puede tener un WI. Esta herramienta es vital para personalizar Team Foundation, aunque ya al personalizar toda una plantilla realmente terminas metiéndote al XML el PTE te permite perder el miedo inicial a hacer cambios de la manera más sencilla. Esta herramienta por si sola merece un post por separado.
    4. Una herramienta de Consola que provee nuevos comandos. A esta no he tenido necesidad de meterme aún, pero cuando trabaje con TF.exe si me di cuenta que está limitada en ciertos aspectos, pero me ayudo mucho en su momento. Ahora tenemos más opciones disponibles como un comando UU (Undo Unchanged) un TreeClean y un TreeDiff que por cierto estas últimas dos ya vienen junto con Orcas.

Algunas herramientas que estamos por instalar pero parecen muy interesantes son las siguientes.

  1. Light Weight Scrum Process Template es otra plantilla similar a Scrum for Team System, pero supuestamente más light. Algo de lo que presumen mucho es que usan Areas e iteraciones para la definición de sprints y Scrum for Team System lo hacen como un Work Item más, yo la verdad ya me acostumbre a hacerlo de esta forma y tiene la ventaja de que le puedes poner fechas, cosa que las iteraciones de VSTS no incluyen. Habrá que ver como hacen con las fechas. Definitivamente es una plantilla que al menos nosotros que usamos buena parte de las bases de scrum tenemos que probar. Si resulta interesante luego publicare algo.
  2. Team Build Ticker es un notificador de builds, suena como una herramientas muy útil que te avisa (estilo Messenger creo) el estatus de tu build. Esto nos evita el tener que esperar el e-mail. El link para la descarga al parecer está fallando.

Como no he probado estas herramientas no les puedo decir más de lo que he leído, por eso mejor chequen los links que les deje.

Espero y les sean de utilidad a nosotros nos han ayudado bastante. Les dejo una lista completa de herarm

Queda pendiente un post sobre Team Foundation Orcas y el Process Template Editor.

domingo, marzo 25, 2007

Visual Studio Plugins

Alguna vez han deseado comparar algún archivo con otro que tienen localmente en su máquina, tal como hacen con los archivos desde source control? Han querido tener una vista de árbol con sus clases de C# tal como con sus archivos de HTML en el document outline? Han pensado alguna vez porque son tan lentas las busquedas en VS, qué porque no esta indexado? Bueno la solución estan en unos pequeños power toys de Microsoft http://www.microsoft.com/downloads/details.aspx?FamilyID=cd7c6e48-e41b-48e3-881e-a0e6e97f9534&DisplayLang=en

Espero y les sirva el links, son bien simples, pero útiles.

Por cierto, hablando de plugins para VS, Resharper de jetbrains agrega funcionalidades muy útiles la más interesante es como detecta errores en el código y algunas opciones para refactorizar, sin embargo si de eso se trata Refactor! deDeveloperExpress hace de una forma gráfica, intuitiva y práctica muchas técnicas de refactorización, sin embargo, un tanto lento. CodeRush también de la misma empresa, se encargará de cambiarle toda la vista a tus clases agregando simbolos y una navegación un tanto útil entre metodos, en lo personal, tanti icono me parecio demasiado aunque al principio es interesante, despues no resuslta tan práctico. No sé si este plugin en partículuar (que fue el último que instale) o si fue el conjunto de todos los que tenía instalados, pero VS 2005 se volvio especialmente lenta al tener CodeRush. SlickEdit es otro producto interesante y tiene una versión gratuita aunque no ofrece nada realmente muy atractivo, a menos que el saber cuantas líneas de código tiene un metodo o proyecto les parezca interesante, tiene otas dos o tres monerias, sin embargo la versión de paga tiene una funcionalidad muy interesante, que por cierto en otros IDEs como Delphi.NET ya viene incluide de fabrica. Cada vez que guardas un archivo crea una copia y va llevando el historial, después te permite hacer un diff, merge y cosas así que haces con herramientas de control de versiones.

Espero y algunas de estas herramientas les sean de utilidad, yo sinceramente despues de formatear mi maquina solo volvi a instalar las de Microsoft ya que de todas las demás no supe cual hizo tan lento mi IDE.
Les sugiero tratar primero con las de SlickEdit, Resharper, Refactor y CodeRush e ir desinstalando la anterior ya que algunas ofrecen funcionalidad tan similar y de una manera transparente que después es difícil distinguir quien es quien te la esta ofreciendo.

sábado, marzo 10, 2007

TFS desde Web

Para acceder a Team System y especialmente al control de versioens desde las oficinas de nuestros clientes, siempre era un rollo, porque, porque teníamos que conectarnos a través de VPN, algunos clientes no permitían este tipo de enlaces por sus proxies y cuando lo podíamos lograr era muy lento.

Finalmente TFS funciona a través de Web Services, así que porque diablos no podíamos consumirlos normalmente, no era todo lo que proponía "Servicios Web XML", un estándar, portable, sin problemas de firewalls y puertos por ser una tecnología propietaria, etc, etc, blablabla.

Bueno el problema no eran el consumir un Servicio Web en sí, si no más bien la forma en que funciona la autentificación. Con el SP1 de TFS esto se arregla, ya que incluye un Filtro ISAPI para el IIS que permite autentificar contra Active Directory (o de la forma en que TFS lo necesite) sin tener que usar en IIS "Autentificación de Windows" y ahora podemos usar Digest y Clear Text, aunque relamente no queremos usar esta ultima sin SSL y Digest tampoco es tan seguro que digamos. Bueno el link que les dejo lleva paso a paso con instalar un SSL y el filtro ISAPI y configurar lo necesario para que puedan acceder a TFS desde Internet.

En resumen los pasos son sencillos (no voy a explicar como configurar un SSL aquí).
Simplemente da de alta el filtro en IIS
Escoge el tipo de autentificación que necesitas
Conectate desde Internet utilizando tu dirección publica.

Algunos problemillas:
TFS corre en el puerto 8080 y algunos cliente nuestros tienen bloqueado ese puerto (mmmm), la solución fue mapear en nuestro firewall que lo que llegue al 80 lo mande al 8080, en el 80 teníamos Sharepoint, pero quien quiere Sharepoint realmente? Bueno si es útil, pero podemos prescindir de el estando fuera de la oficina.

Seguramente quisieras una forma de ver el mismo dominio estando fuera de la oficina como estando dentro, bueno simplemente configuren su DNS para que apunte al TFS estando localmente cuando soliciten algo como midominio.com y obviamente redirijan el tráfico de midominio.com al TFS.... bueno cada empresa lo tendrá distinto.

Si no tienen midominio.com o sudominio.com o IP estática vayan a homedns.org y saquen uno dinámico, con eso puede funcionar bien.

Suerte y espero y les funcione igual de bien que a nosotros.

miércoles, enero 10, 2007

Team System

Wow!!! nuestro Team System está rapidisimo. Despues de formatear todas las máquinas y servers de la office Team System va que vuela.

Ahora el único problema es que mientras hace un get latest ya no alcanzamos a ver que archivos se estan bajando.

No se puede depurar en ASP.NET desde Vista

Recien formateamos las máquinas de la oficina para instalar el nuevo OS de MS, pero oh sorpresa en dos de las máquinas no podían correr ASP.NET.

Todo el truco esta en que VS debe estar corriendo como administrador de la máquina para poder depurar. Al parecer Vista y VS 2005 aún no se llevan bien, pero fuera de eso y otros problemas relacionados con lo mismo de permisos, no hemos batallado y en una de las máquinas hace 4 meses que se trabajaba con VS y Vista.

Otro de los problemas es que no puedes loggearte a Team System si no corres como Administrador VS.

Para como solucionar esto, lo más sencillo sería dar clic derecho y run as admin, para mejorjes soluciones chequen mi otro post.

jueves, noviembre 23, 2006

Post para matar el tiempo.... Code Analysis

Estoy trabajando en un proyecto que al ratito les platico y está tardando mucho en realizar algunas cosas que luego les comento. Mientras esperaba me desesperaba y me ponía a buscar páginas de internet. Después de agotar los últimos posts de Martin Fowler y revisar el foro de discusión de roller.com.mx termine revisando mi blog. Me di cuenta que agote tenía casi un mes sin postear algo.

Después de un tiempo sin que se me ocurriera nada de que postear, me doy cuenta de que casi todo lo que hago vale la pena por un post, naaaa no es cierto, no soy todavía tan creído, pero si hay muchas cosas que me gustaría poder compartir. Por ejemplo, justo ahora estoy usando Code Analysis en un proyecto, aunque ya había usado FxCop en .NET 1.1 con excelentes resultados y un par de veces había curioseado con Code Analysis en VS 2005, no me había puesto a usarlo desde un principio en un proyecto.

Bueno ahora estoy haciendo un framework como parte de un proyecto de un cliente. Un framework es de esas partes en los proyectos que más debes de cuidar sobre todo porque son componentes que usaran muchos desarrolladores en diferentes proyectos, por lo que las sugerencias de Code Analysis resultan muy útiles aunque muchas muy enfadosas.

Code Analysis ha resultado ser muy lento, al menos como para correrlo cada vez que quiero compilar, pero si es tolerable como para correrlo como parte de mi suite de pruebas. Algún día creo que voy a hacer o a buscar algo que se encargue de en el background mientras yo sigo codificando se ponga a correr mis pruebas y code analysis y se vayan automáticamente corrigiendo los errores que aparecen en VS, pero de mientras, tendre que irlo corriendo manualmente de vez en vez.

Más adelante les platicare más de Code Analysis. Ahora voy a resumir un poco de lo que he hecho en estas tres semanas de ausencia.

Bueno el 3 de Noviembre di un curso en el Tec de Monterrey como parte de la serie de conferencia del MDCD, hable de lo que es el .NET Framework 3.0.

Luego fuí a Cd Victoria en Tamaulipas a una reunión de Clústers. Lo interesante es ver como los demás clusters del país tiene los mismos problemas que encontramos nosotros en Torreón, inclusive los grandes como el caso de Jalisco o TI Baja, aunque tenemos mucho que aprender del camino que ellos han recorrido.

Leí un libreo de XP (Extremme Programming), lo que más me gusto es que no es a las prácticas que se han vuelto buzz words como pair programming o TDD a lo que le dan la importancia si no a los valores y principios que deben de tener las personas, los equipos y la organización en general para que el proceso funcione bien. En general, has aquello que aporte valor al proyecto. XP es otro tema para platicar por si sólo, aunque soy más fan de muchas prácticas de Scrum y EssUP resulta otra metodología ágil interesante, la escencia de XP es algo que toda metodología debería tener: valores y principios pensados por el bien del proyecto.

Ya no avance con el libro de CSLA, pero lo poco que he leído me ha ayudado mucho, no para el propósito de ese framework, sino para la elaboración de otros. Es interesante ver desde adentro como esta armado y porque algo es internal en lugar de public o private por ejemplo.

Recién empiezo un libro de Team System que se ve muy prometedor.

Le ayude a Carina Casco a hacer un concurso nacional de patines (ufff que friega, pero ya salimos).

Terminamos algunos proyectos (entre ellos el primer piloto de MoProSoft) y estamos empezando otros, tal vez es por eso que no he tenido tiempo de postear.

Bueno y que sigue. Jugueteando con .NET el 8 de Diciembre, la idea es que lleven un juguete para poder entrar y estos sean donados, así DotNetLaguna aporte algo a la comunidad lagunera. Voy a estar viajando a Monterrey por motivo de un proyecto así que cada 15 días andare por allá. Seguirle con MoProSoft y la guerra con metodologías ágiles y formales. El fïn de año es de buenas ventas tanto para Integradores como para roller.com.mx así que esperemos que haya mucha chamba.

viernes, octubre 27, 2006

CodeSnippet Manager en Team System

Despues de casi un año de estarlo buscando, por fin, "helo" aquí. Todo gracias a Alex y su post, la verdad es que era algo muy sencillo, pero nunca se me había obucrrido buscar ahí.

Problema: En Team System no aparece el Code Snippets Manager.
Solución: Ve a Tools/Customize y luego busca la opción dentro del menú Tools y reagregala.

Ahora si a hacer mis snippets para algunos patrones de diseño.

domingo, julio 30, 2006

Más de VSTS for DB Pros

Aquí les dejo algunas pantallitas con comentarios.



DB for Pros, agrego nuevos Project Templates, vamos a probar con el de SQL Server 2005 y agregarlo SourceControl a nuestro proyecto de Investigaciones.



Uuups. Nunca me preguntaron por una instancia de SQL y al parecer no se pudo conectar a ninguna. “Project Creation Failed”.


Intentemos de nuevo, pero en esta ocasión sin agregarlo a SourceControl.


Mismo error, nuevamente. ¿Hasta aquí llegamos? No… vamos a intentar con otro tipo de proyecto.


No es exactamente lo que buscábamos, pero a ver, agreguemos un proyecto para crear clases que se usen en SQL Server.


Tal como esperábamos, ahora nos pide la instancia.


Wow, desde VS 2002, siempre fue algo complicado el depurar SQL, y esto parece que va a dejar todo listo para poder hacerlo de manera sencilla. Sólo no hay que depurar en un servidor de producción. Hagan esto en alguno de prueba. Según la nota: “Todos los managed threads se detendrán durante la depuración”.


Al agregar un nuevo Item, estas son nuestras opciones. Se está volviendo lento y tardado poner una imagen de cada paso. Por lo que voy a probarlo sólo y luego les paso lo más importante. Este es mi primer post con imágenes desde Word 2007 directo a blogger, así que quería probar que tal se subían. Pero bueno, suficientes imágenes para mi prueba.

Bueno realmente no hubo mucho más que mostrar.

  • Agregue el proyecto a SourceControl sin problemas.
  • Le agregue uno de cada uno de los ítems que mostré anteriormente.
  • Les hice cambios a estos y cree unos tipos de datos, clases y otras cosas sencillas. Nada que no hubiéramos podido hacer desde otro lugar.
  • Al presionar F5 me empezó a hacer el deployment y todo fue a dar a mi base de datos sin problemas.
  • Al final me dijo que no tenía suficientes permisos para depurar.


Bueno y a que le hizo el deployment. Me copio mi Assembly, creo un StoredProcedure y mi type.

Es importante mencionar que el proyecto tiene unos Test Scripts. Estos Scripts se corren al momento de hacer el deployment, para estos prueban tus StoredProcedures u otros objetos de SQL.

Ok, vale la pena entonces probar alguna otra funcionalidad aparte de el puro deployment y SourceControl.

Refactoring: hice un simple rename a mi tipo para que ahora se llame Type2 y voila!!! F5 y todos los cambios aplicados también en mi base de datos y afectando a mi StoredProcedure.

CREATE
PROCEDURE [dbo].[StoredProcedure1]

@miTipo [dbo].[Type2]

Algo que me llamo la atención es la manera en que podemos crear Stored Procedures. Finalmente es un metodo estático dentro de una clase decorado con ciertos atributos. El metódo puede regresar algún tipo de dato y recibir tantos parametros como sean necesarios, esto finalmente se traduce en código como el que vimos arriba.

Unit Testing: cree una sencilla prueba unitaria para algunas propiedades y metodos y todo sin problema. Sin embargo, no se que tal se comporte al querer hacer unit testing sobre un stored procedure ya en la base de datos o sobre algún mock database. Aún no se como vaya a trabajar eso.


Hay mucho por conocer de está herramienta, les sugiero que la bajen y se pongan a jugar un rato. Aunque no estoy completamente satisfecho con el producto, parece ser algo prometedor.

martes, julio 25, 2006

Visual Studio Team System for Database Professionals

Esta es la descripción que encontré de la herramienta:

Herramientas para construir bases de datos de SQL en un entorno de proyecto administrado con soporte para versiones, despliegue (deployment), pruebas unitarias, refactorización, y desarrollo SQL desconectado. Este release (CTP de Junio de 2006) está enfocado en un escenario de funcionalidad completa para SQL 2000 e incluye el sistema base con ingeniería en reversa, un nuevo editor de consultas, comparador de esquema y datos, generador de datos, pruebas unitarias y refactorización de nombres.

En un post anterior ya les había hablado de DataDude (codename) para este nuevo producto. Bueno, ya pueden bajar los bits de Junio, pero no les dejo ese link, mejor el del CTP4.

Estos son links de algunos bloggers the DataDude:

Luego que lo prueba más publicare algunas fotos.

lunes, julio 17, 2006

DataDude or VSTS for Database Professional

Ok, para los que conocemos VSTS, sabemos que tiene sus ediciones de Tester, Architect y developer y que comparte una base común por ejemplo Team Explorer para navegar por los ítems de Team Foundation Server.

La mayoría de nosotros, bueno excepto aquel que no tenga mucho que ver con las bases de datos, aún usa Management Studio o Enterprise Manager y Query Analyzer. Bueno Datadude, va será el ambiente de trabajo para bases de datos.

Que ofrece?
Bueno la verdad es que después de escuchar el podcast de .NET Rocks que quedo con la idea de que está primera versión no ofrecerá cambios impresionantes, pero esto es algo de lo que están haciendo:
Partienda de que tenemos el esquema offline, es decir, creas un nuevo proyecto de base de datos y te traes el esquema a tu maquina. Ya aprovechando que tenemos esto es posible lo siguiente:
Mantener un control de cambios (Team Foundation).
Trabajar con diferentes desarrolladores y hacer merge de cambios a la base de datos.
Programar deployments y reflejar estos cambios en las bases de datos.
Proveer el impacto que pudiera tener cambios en el esquema en los datos.
Refactorizar la base de datos (como clic derecho en una columna y luego Rename) y actualizar StoredProcedures, vistas, rules, etc.

Bueno si eso les parece interesante, se decepcionaran un poco al saber que no está listo aún:
Intellisense :(


Bueno faltan algunas otras cosas a mi parecer no tan criticas como, integración con LINQ (para Diciembre que liberen DataDude aún no estará listo LINQ). Que trabaje con diferentes DBMS (actualmente sólo soporta SQL 2000 y 2005), toda la versión 2.0 de Datadude trata de esto. Algunos extension points para proveedores (hacer plugins, etc).

Bueno traen el tiempo encima, se supone que esto lo liberan para Diciembre.

Ojala y para el próximo año podamos contar con algo mejor para trabajar sobre bases de datos.

Net Framework 3

Al parecer ya está esto más listo, al menos a un nivel tan estable como para empezar a hacer nuestros primeros pininos en está nueva tecnología...

Esperamos que en próximos proyectos podamos empezar a usar algo de esto.

Pueden ver más info de lo que se incluye en un post de Christian Strevel.

Integración Continua

La integración continua es una práctica muy útil en el desarrollo de software (lastima que no la usamos, bueno no al 100%).
Recientemente escuche algo de un servidor de integración y me llamo la atención. Pense, en que podrá servirnos a nosotros, recuerdo haber visto algo de esto en internet, de pronto recorde que ya teníamos uno, que se empezo a utilizar en tres proyectos, uno de los cuales se cancelo y se quedo en un proof of concept, otro fue tan sencillo que nunca realmente se notaron los beneficios que CI (Continuous Integration) pudo haber brindado y en este último que nos hubiera servido muchísimo en algún momento se desconfiguro el Build Server y se dejo de utilizar.

Bueno en resumen, teníamos el servidor, pero no la práctica de integración continua. CI es de esas cosas como control de versión y administración de proyectos que por más que tengas CVS o MS Project (o algo mejor), si tu equipo no tiene buenas prácticas de Administración de la Configuración o Planeación de Proyecto de poco sirve. Lo mismo nos ocurre ahora...

Bueno volviendo al tema. Martin Fowler reescribió sobre CI, si quieren conocer un poco más de esto se los recomiendo.

Por último, aunque Team Foundation Server aún le falta madurar un poco en algunas de sus áreas (al igual que otras de VSTS), trae ya un servidor de Integración con el que Christian y yo estuvimos jugando.

Como funciona, simplemente creas un nuevo build, le dices que proyectos de Visual Studio o que soluciones quieres compilar, cuales dependen de cuales y que pruebas quieres correr sobre el build. Una vez que haces esto y programas la frecuencia (minímo diario), todo funciona en automático. El build server tomara del repositorio los archivos que necesita, compilara lo que le indicaste, correrá las pruebas y te deja todo el output (dlls, archivos de pruebas, exes, etc) en un dropbox (un folder compartido en red). La mejor parte es que todo esto se integra con los reportes de Sharepoint que tiene el Team Foundation, por lo que podemos ver estadísticas como las siguientes:
Pruebas fallando con bugs activos y con bugs activos,
Regresiones: pruebas que ya pasaban y ahora no.
Otros indicadores de calidad,
% de pruebas que pasan.
% de codigo cubierto por pruebas (Code Coverage).

También se pueden hacer otro tipo de revisiones aparte de las pruebas automatizadas, como para poder hacer el deployment o release de un build en partícular.

La verdad es que nosotros estamos medio güeyes, la regamos, pensamos que los builds eran para tenerlos. Como? Si pensabamos que para tenerlos y poder obtener de una fecha en partícular los ejecutables y librerías necesarias para de ahí poder hacer un release. La verdad es que esto de los builds tiene mucho mayor sentido que eso: Continuous Integration. Esto nos va a permitir saber como vamos, que tal trabajamos juntos, si vamos mejorando o empeorando, detectar rápidamente como nos pegan los cambios de otros y arreglarlos rápidamente y más que nada, tal como dice martin fowler "treat integration as a non-event", "trata la integración como si no fuera un evento", es decir, no vamos a estar al final del proyecto integrando todos los modulos.

martes, julio 11, 2006

ScrumForTeamSystem

A poco no estan padres las páginas que dicen algo así como, seccionamarilla.com o integradorestecnologicos.com o computers.com, páginas que dicen exáctamente lo que estás buscando.

Hay una que me gusta mucho roller.com.mx, es una tienda de patines y es de méxico, así que que mejor dirección de roller.com.mx, patines.com.mx hubiera sido buena, pero bueno saben la idea.

Siempre que me preguntan algo como, oye donde puedo ver los resultados del prep digo bromeando, entra a resultadosdelprep.com. No sería bueno que fueran las cosas tan sencillas con los nombres de dominio?

Bueno, ahora si quieren bajarse unos templates para VSTS y dejar de manejar esos procesos de MSF, que sólo Microsoft entiende, si les gustan las metodologías ágiles y sobre todo si programas en .NET, usas Team System y Scrum es el proceso de trabajo utilizado por tu equipo... bueno entra a scrumforteamsystem.com

Hasta ahorita he estado leyendo un poco de esto y de aquello, viendo templates, etc... despues de conocerlo más (uno dos meses probalemente) les escribire más al respecto, pero si no quieren esperar tanto, vayan bajenlo, instalen los templates, usenlo en un spritn (una iteración de Scrum) y me platican.

miércoles, julio 05, 2006

Team System desde fuera de la oficina.

Es triste saber que Team System, aun y que esta basado en WebServices y supondríamos que se podría trabajar directamente desde Internet, este aún tiene problemas para hacerlo de manera optima, por lo que nuestra solución estos días fue el montar una VPN y conectarnos de está manera.


Esperamos en próximas versiones ya se pueda hacer la conección direccto por internet.

:`(

Al parecer esto es por los metodos de autentificacion que por default debe usar el IIS para trabajar con los WSs del TFS.

sábado, junio 10, 2006

Team System Source Control

Hay dos opciones muy buenas que trae el Source Control de Team System. Shelving y Branching, ya las habíamos visto. Ya habíamos tenido la necesidad de usar Branching, pero realmente no nos fue útil.
En un proyecto nos dimos cuenta de que estabamos por hacer grandes cambios, borrar muchos archivos de código, cambiar otros, así que decídimos usar Branching, para poder volver después al punto estable en caso de que nuestros cambios hecharan a perder lo que ya funcionaba.
Bueno en ese caso pudímos haber usado un label, del tal forma que si quisieramos regresabamos al punto anterior o podíamos usar ese para generar un entregable. Finalmente nunca necesitamos hacer un merge (ahorita les explico para que funciona).

Bueno lo útil del Branching es realmente el merging, el proceso es el siguiente y lo explico con un ejemplo, aunque pueden ver dibujitos en el link que les dejo.
Queremos probar diferentes ideas que nos permitiran mejorar el performance de una aplicación, todo está funcionando bien, es sólo el performance lo que queremos comprobar, por lo que necesitamos crear diferentes ramificación (branches) para hacer varias pruebas distintas, las que mejoren considerablemente el performance se integraran a la línea original y las que no, simplemente quedarán fuera y borraremos dicho branch. Así que la ventaja real de esto viene hasta el punto en que hacemos el merge.

Por otro lado, también nos permite usar las diferentes versiones de la aplicación para poder hacer comparaciones entre una y otra y medir cual es más rápida.

Espero nos de resultados y ojala y todas las ideas que traemos ahorita mejoren en algo el performance y finalmente integremos los cuatro branches a la línea original.

Otra ventaja que tienes es que mientras algunos de los desarrolladores tratamos de mejorar el performance, otros pueden seguir con otro tipo de cambios a los que después nos integraremos.


Bueno cambiando de tema, Shelving es otra opción, que aunque no la hemos utilizado, vemos que nos va a resultar útil. Hay muchas ocasiones en las que dos desarrolladores necesitan trabajar sobre una misma parte de código desde diferente computadoras y estar haciendo check ins rompería el build y afectaría al resto del grupo, sin embargo, ellos necesitan compartir ese código, esto resula útil también para alguna revisión de código o cuando el mismo desarrollador se cambia de una maquina a otra, así que en lugar de dar check in y luego get latest version, hacen un shelve y luego un unshelve, una vez que hacen el shelve ya no les apareceran los pending changes y una vez que hagan unshelve nuevamente tendráne esos archivos como pending changes.

Espero y esto le sea útil a alguien más y aprovechen las ventajas que nos da el uso de estás herramientas.