Blog dedicado a la programación .NET y la informática en general

Entradas etiquetadas como ‘vss’

Pasando de Visual SourceSafe a Team Foundation Service (antes TfsPreview)

Introducción

Prácticamente desde que empecé a programar en .NET (allá por el 2003) he usado como controlador de código para mis propios proyectos el Visual SourceSafe (VSS) desde su versión 6 hasta la última del 2005 (v.8). Principalmente porque podía llevarlo en un pendrive y tenerlo disponible allí donde iba. Eso no quita que profesionalmente haya usado también SVN o ClearCase, pero desarrollando con Microsoft uno tira por lo que le da de comer.

Desde la salida de VS2010 Microsoft ha puesto mucho interés en que usemos Team Foundation Server (TFS). El caso es que esto no me era viable debido a que no disponía de la portabilidad que me ofrece el “pendrive”, y me es imposible subirlo a un servidor donde ponerlo “online” para poder acceder desde cualquier sitio con internet.

Esto ahora ha cambiado gracias a la conferencia que hizo MadridDotNet el pasado día 23 de Octubre de 2012 y a una consulta que hice en Twitter a MSDN España y a la cual me respondieron. En la conferencia, entre otras muchas cosas, hablaron de TfsPreview.com (ahora Team Foundation Service, que no Server, no se si han elegido una buena nomenclatura seguro que alguno se hace el lio), un portal para poder disponer de un servidor TFS en la nube para tus proyectos. La versión “Free” por supuesto tiene sus limitaciones, no está disponible SharePoint ni Reporting, y tiene las mismas limitaciones que un TFS Express donde se pueden conectar hasta 5 desarrolladores a un proyecto. Sí dispone de número ilimitado de proyectos, control de versiones, trazado de tareas, herramientas de planificación para las metodologías ágiles, gestión de retroalimentación o retroinformación (llamémoslo mejor “Feedback”) y generación de ensamblados (nombrados como “Builds”). Ruego que me perdonéis mi mala traducción.

Tenéis más detalles de las características en su página web.

En este artículo veremos:

 

Creación de Cuenta

¿Por dónde empezar? Abriendo una nueva cuenta en la página web “tfs.visualstudio.com”. Para ello deberás tener una cuenta Live con la que autenticarte y administrarla.

Img. Creación de Cuenta

pantallazo

Al crear la cuenta te genera una colección por defecto llamada DefaultCollection de donde van a colgar el resto de tus proyectos. Por defecto te pedirá que generes una, ten cuidado con el nombre que le pones porque una vez puesto o lo dejas tal cual o lo borras, y esta segunda opción no es moco de pavo.

Img. Portal de Bienvenida

pantallazo2

Llegados a este punto he de decir que la gestión de los “proyectos de equipo” es bastante limitada en cuanto a renombrar o a eliminar. Se puede generar nuevos “proyectos de equipo” o gestionar los que ya tengas hechos, los grupos de usuarios y los roles de los mismos. Todo de forma fácil y básica y bajo la rama principal llamada “DefaultCollection”.

Img. Configuración de Cuenta

pantallazo3

Conexión con Visual Studio

La conexión de Visual Studio (VS) con el TFS Online es muy sencilla siempre y cuando no tengáis un proxy de por medio.

Hay que destacar que soporta conexión con las versiones 2008, 2010 y 2012. No lo he comprobado con versiones anteriores. Se que con la versión 2012 no hay ningún tipo de problema conocido, pero recomiendo la actualización del mismo. Con la versión 2010 debe tener instalado el SP1 y el (Hotfix KB2581206 este ya no vale) Hotfix KB2662296. Para VS2008 también se debe tener instalado una actualización de distribución general.

Img. Conexión VS con TFS

pantallazo4

Para VS2012 la ruta de menús es la siguiente:

EQUIPO –> Conectar con Team Foundation Server –> Servidores… –> Agregar

No voy a profundizar en el manejo de TFS, pero prácticamente se puede hacer todo desde las herramientas de “Team Explorer”, la ventana de “Explorador de control de código fuente” y desde el menú “Equipo”.

Corrección de problemas de conexión

Entramos en terreno pantanoso, los problemas de conexión en red que usan proxy y las credenciales de conexión. En este caso lo he solucionado para VS2010, pero probablemente pase lo mismo para VS2012.

Primer Paso : Adaptar Visual Studio para que tome las credenciales del proxy

La solución la he obtenido de este enlace. El cual explica como generar una librería que hay que poner en la carpeta de Visual Studio y cómo hay que cambiar su fichero de configuración para que tome dicha librería, la cual va a proporcionar los identificadores necesarios para la conexión proxy.

Yo además le he incluido el código necesario para que dichas credenciales las pueda tomar de su propio fichero de configuración:

Img. Configuración Librería

pantallazo5

Código Fuente Clase Credenciales Proxy Configurables
public class ModuloAutenticacion : IWebProxy
{
    ICredentials crendential = new NetworkCredential(Configuracion.AppSettings.Settings["ProxyUser"].Value, Configuracion.AppSettings.Settings["ProxyPassword"].Value);
    public ICredentials Credentials
    {
        get { return crendential; }
        set { crendential = value; }
    }
    public Uri GetProxy(Uri destination)
    {
        return new Uri(Configuracion.AppSettings.Settings["ProxyUrl"].Value, UriKind.Absolute);
    }
    public bool IsBypassed(Uri host)
    {
        return host.IsLoopback;
    }
    /// <summary>       
    /// Obtiene la configuración de la aplicación        
    /// </summary>       
    public static Configuration Configuracion
    {
        get
        {
            return ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().GetName().CodeBase.Replace("file:///", string.Empty));
        }
    }
}

La librería resultante y su fichero de configuración hay que ponerlos en el directorio de Visual Studio. Hecho esto se cambia el fichero de configuración de VS incrustando un código parecido a este:

Código XML Configuración VS
<system.net>
  <defaultProxy>
    <module type="RublenX.AutenticacionProxy.ModuloAutenticacion, RublenX.AutenticacionProxy"/>
  </defaultProxy>
</system.net>

Ojo, aquí no se resuelven todos los problemas, al menos en mi caso.

Segundo Paso : Configuración de las Credenciales de la Web

Llegados a este punto el servidor no me daba errores de conexión por las credenciales proxy, este vez era por la autenticación contra “tfs.visualstudio.com”. ¿Qué hacer entonces?. Pues cambiar las credenciales desde el “Panel de Control”.

Img. Acceso al Administrador de Credenciales


pantallazo6

Incluir una nueva entrada con la dirección web de “tfs.visualstudio.com” y vuestras credenciales de “Window Live”. No hace falta que lo explique ¿verdad?. Bueno dicen que una imagen vale más que mil palabras.

Img. Configuración Credenciales (Recordar que ya no es “tfspreview” sino “visualstudio”)


Credenciales

Traspaso de los ficheros de VSS a TFS

En este caso el equipo de foro de MSDN en español fueron tan atentos, como suelen tenernos acostumbrados, y contestaron a este planteamiento: ¿Cómo traspaso mis proyectos de VSS a TFService?.

La solución la tenemos descargando la herramienta “Visual Source Safe Upgrade Tool for Team Foundation Server” o con el nombre con el que se instala en el equipo “VSS Upgrade Wizard”.

Recomiendo tener el “SQLServer Express” instalado en el equipo ya que se va a necesitar como almacenamiento temporal durante la exportación a TFS. Y también que ejecutéis la herramienta de “SourceSafe” llamada “Analyze” para evitar que los problemas que pueda tener la BBDD de VSS pueda dar problemas en la migración de los datos. Por ejemplo mediante la siguiente línea de comando (cambiando claro está la ruta que he puesto por la de vuestro directorio):

analyze -C -D -F -V4 J:\PROGRAMACION\VSSBBDD\DATA

Mecanismo de un chupete… arrancamos el programa y seguimos estos pasos:

Img. Selección del Directorio Fuente de VSS


pantallazo7

Img. Selección del Servicio TFS


pantallazo8

Img. Opciones de Exportación y SQL Server


pantallazo9

Img. Resumen de Configuración


pantallazo10

Img. Validación de Configuración


pantallazo11

Img. Proceso de Análisis y Subida


pantallazo12

Si todo ha ido bien os aparecerá las siguiente pantallas.

Img. Migración Finalizada


pantallazo13

Img. Resultado de Migración


pantallazo16

Si has llegado hasta aquí tendrás tu copia de VSS subida a TFS, pero también te puede pasar como a mí que la migración de algún tipo de problema:

Img. Migración con Errores


pantallazo14

Img. Detalle de Errores


pantallazo15

Podéis comprobar los errores en el fichero XML que genera el programa en su carpeta Logs:

C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs

Abriéndolo con el “XML Editor” que instala Office lo podréis leer sin problemas, pero sino ir a la sección “Issues” y podéis hacer una búsqueda por Type=»Error» o por Type=»Warning».

En mi caso los 4 errores se han producido por un fichero con una nomenclatura antigua de DOS (si, si, ese sistema operativo que su interfaz gráfica era todo texto) y que he podido agregar manualmente al TFS posteriormente.

Los avisos o “warnings” me dan cuando el fichero fue creado en otra rama diferente de la que esté ubicado en ese momento y su fecha de creación se queda por tanto en el momento en el que se pasó a esa rama. Y el resto de los avisos se suceden prácticamente por mover ficheros en SourceSafe de una carpeta a otra.

Sea como sea se guarda el registro de cambios y se puede hacer el seguimiento de los mismos.

Img. Historia Fichero Importado


pantallazo17

Eliminación de un Proyecto de Equipo

Si os ha pasado como a mí, el primer proyecto de equipo le ponéis cualquier nombre pensando ingenuamente que luego se lo podréis cambiar…. pues NO.

Para borrar un Equipo de proyecto, ejecutar en modo administrador el icono de Visual Studio “Símbolo del sistema de las herramientas nativas de VS2012 x86”, y una vez abierta la ventana de comandos se ejecutaría la siguiente orden, cambiando por supuesto “tuproyecto” y “Nombre Proyecto” por los correspondientes:

TFSDeleteProject /collection:”https://tuproyecto.visualstudio.com/DefaultCollection” “Nombre Proyecto”

Img. Resultado de la Ejecución de Eliminación


image

Probé a ejecutarlo en otro acceso director de “Símbolo de Comandos” que tiene Visual Studio y no funcionó, así que si no os va en uno probar en otro, yo os he puesto donde sí me ha funcionado.

Conclusión

Estoy mucho más que satisfecho con la decisión de pasarme a TFS, mis datos ahora no sólo están accesibles desde cualquier sitio con conexión a internet sino que también están seguros, ya no los llevo encima en un dispositivo que podía perderse o estropearse. Y si nos ponemos hablar de las ventajas de TFS frente a VSS entonces este artículo sería ya mucho más largo de lo que ya lo es de por sí.

Cualquier duda o aclaración estoy a vuestra entera disposición.

Saludos.

Anuncio publicitario
A %d blogueros les gusta esto: