Arquitectura, buenas prácticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016

¿Cómo gestionar tus dependencias con VSTS?


Uno de los aspectos que caracteriza a los equipos de desarrollo maduros es la re-utilización del código ya utilizado (entre otras cosas). Este pensamiento es con el que en ENCAMINA empezamos a desarrollar lo que finalmente se ha llamado ENMARCHA . La gestión de las dependencias es uno de los mayores problemas a los que se enfrenta cualquier equipo de desarrollo.

Tenemos dos tipos de dependencias:

  • Externas. Aquellas dependencias que son librerías, desarrollos de terceros y que las utilizamos en nuestros desarrollos. Un ejemplo son las librerías de Nuget para desarrollos .NET o bower, npm para el mundo JavaScript.
  • Internas. Estas dependencias son desarrollos realizados por el propio equipo de desarrollo y que se utilizan para aprovechar los desarrollos ya realizados.

En este post vamos a centrarnos en estas últimas y en el porqué de su importancia. De la misma forma vamos a ver las distintas formas que hay de gestionar estas dependencias, desde las más manuales hasta las más sofisticadas haciendo uso de Visual Studio Team Services.

Partimos de la base de que dentro de nuestra organización disponemos de un proyecto donde tenemos las funciones, utilidades, etc. que utilizamos en todos los proyectos de nuestra organización.

¿Cómo utilizamos estas utilidades en los nuevos proyectos que hacemos?

Una primera opción es añadir este proyecto dentro la nueva solución que estamos haciendo. Agregamos la referencia al nuevo proyecto y comenzamos a utilizarla.

Ventajas

  • Aprovechamos las funcionalidades ya implementadas
  • Fácil de depurar

Inconveniente

  • No tenemos versionado, si en el nuevo proyecto realizamos alguna modificación que afecta a «artefactos core» es posible que otros proyectos que lo estén utilizando no funcione correctamente o bien no compile nuestro proyecto

Una segunda opción es crear un paquete Nuget interno y ubicarlo bien en un lugar común para todos los miembros de la organización o bien implementamos un servidor privado de Nuget tal y como se indica en el siguiente enlace.

Ventajas

  • Todos los miembros del equipo pueden utilizarlo sin problemas
  • Disponemos de histórico y versionado

Inconvenientes

  • La depuración de los métodos que hay en el paquete Nuget es un poco más complejo
  • Hay que crear los paquetes Nuget cada vez que se realiza una modificación
  • Mantenimiento de tu servidor de Nuget

Una alternativa a crearse el servidor de Nuget es utilizar un producto como MyGet. Es un servidor de paquetes como Nuget, NPM, Bower, pero de forma privada y no pública.

Una tercera alternativa sería utilizar Visual Studio Team Services como tu servidor de Nuget. Microsoft en el proceso de hacer mejor Visual Studio Team Services, ha añadido una funcionalidad para poder hacer que nuestros repositorios sean feeds de Nuget.

Ventajas

  • Accesible para todos los miembros de nuestra organización
  • Integrado con TFS

Inconveniente

  • La única desventaja que le veo a priori es la url del feed que no es muy amigable

Resumen

Dentro del desarrollo software el ciclo de vida de la aplicación es algo que debemos tener muy presente. Hay muchas tareas que van más allá del propio desarrollo del mismo. La gestión de las dependencias es algo muy importante y que ocasiona muchos problemas en caso de llevar una mala gestión de las mismas.

Una mala gestión puede provocar la perdida de funcionalidad e incluso que nuestro código fuente no funcione, con lo que si tenemos que llevar a cabo una actualización de la aplicación deberemos de reconstruir la parte que no funciona. En nuestro caso, hemos pasado por las tres fases y ahora mismo podemos decir que las tenemos gestionadas de una forma correcta y coherente. Y tú, ¿cómo las gestionas? 😉

mm

Sobre Adrián Díaz

Adrián Díaz es Ingeniero Informático por la Universidad Politécnica de Valencia. Es MVP de Microsoft en la categoría Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 3 años está centrado en el desarrollo sobre SharePoint. Actualmente es Software & Cloud Architect Lead en ENCAMINA.
Esta entrada ha sido publicada en alm y etiquetada como , , . Enlace permanente .
Suscríbete a Desarrollando sobre SharePoint

Suscríbete a Desarrollando sobre SharePoint

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores