12 Horas Visual Studio - Gestion de código y librerías compartidas con TFS y NuGet
1. Gestión de código y
librerías compartidas
con TFS y NuGet
Jose Luis Soria
ALM Team Lead / Plain Concepts
jlsoria@plainconcepts.com
@jlsoriat
http://geeks.ms/blogs/jlsoria
Logo Empresa Ponente
2. ¿Por qué preocuparnos por este tema?
• Todo el mundo tiene código o librerías
comunes, que necesitan ser compartidas
entre varios proyectos de la organización
• En muchas ocasiones, no se tiene una
estrategia definida para gestionar estas
dependencias
Logo Empresa
Ponente
3. Mapeo de workspaces
• Definir el mapeo del espacio de trabajo de
modo que las dependencias estén disponibles
para ser utilizadas
Logo Empresa
Ponente
4. Mapeo de workspaces
• Es muy simple de configurar
• El código común se compila cada vez
• Necesito tener el mapeo de espacios de
trabajo estandarizado para todos los
desarrolladores
• Si se modifica el código en el proyecto
común, todo el mundo recibe los cambios al
bajarse la última versión
Logo Empresa
Ponente
5. Ramas
• Creamos una copia de la dependencia
haciendo una rama para el proyecto que la
utiliza
Logo Empresa
Ponente
6. Ramas
• Tiene trabajo de mantenimiento
(combinaciones)
• El código común se compila cada vez
• Cada proyecto destino puede elegir la versión
de la dependencia que está utilizando
Logo Empresa
Ponente
7. Actualización de dependencias
• Se tiene una copia de la dependencia
(construida) subida al control de versiones, en
una subcarpeta del proyecto destino
• Si la dependencia es actualizada, se construye
de nuevo y se actualiza la copia del proyecto
destino
• Se puede utilizar una costrucción
automatizada para hacer la actualización de
forma desatendida
Logo Empresa
Ponente
8. Actualización de dependencias
• Puede tener trabajo de mantenimiento
(actualizaciones)
• El código común no se compila cada vez
• Cada proyecto destino puede elegir la versión
de la dependencia que está utilizando
Logo Empresa
Ponente
9. Servidor de NuGet
• Se tiene un servidor de NuGet “privado” para
la organización
• Una construcción automatizada construye las
dependencias, genera el paquete de NuGet
correspondiente y lo actualiza en el servidor
de NuGet
Logo Empresa
Ponente
10. Servidor de NuGet
• Trabajo de mantenimiento mínimo
• El código común no se compila cada vez
• Cada proyecto destino puede elegir la versión
de la dependencia que está utilizando
Logo Empresa
Ponente
11. Servidor de NuGet
• Todas las ventajas de NuGet
– Los ficheros necesarios se mantienen
automáticamente y se pueden actualizar los
ficheros de configuración
– Al eliminar dependencias, los ficheros asociados
también se eliminan automáticamente
– Gestión de actualizaciones integrada
– Se puede usar con nuget.org
Logo Empresa
Ponente
12. Más información
• NuGet: http://nuget.codeplex.com/
• NuGetter: http://nugetter.codeplex.com/
• NuGet for the Enterprise: http://bit.ly/ms3s2r
jlsoria@plainconcepts.com
http://geeks.ms/blogs/jlsoria
@jlsoriat
http://www.slideshare.net/jlsoria
Logo Empresa
Ponente