En el post anterior comentábamos la situación actual de la gestión de librerías. Introducíamos el proceso BEILU que seguimos a la hora de gestionar las librerías de terceros. Hoy explicaremos cómo mejorar esta situación mediante la herramienta Nuget. Si te perdiste el post anterior, puedes encontrarlo aquí.
Qué es Nuget
Nuget es una extensión de Visual Studio 2010 para la gestión de paquetes de librerías. Mediante Nuget podemos encontrar en una única ubicación los paquetes que la comunidad ha ido publicando.
Los desarrolladores pueden empaquetar sus librerías y publicarlas en el feed público que Nuget les proporciona, una única ubicación donde todos los paquetes contribuidos se listan públicamente. Los usuarios de los paquetes pueden descargar directamente desde Visual Studio éstos paquetes e instalarlos en el proyecto, Nuget se encargará de todos los pasos necesarios para que el paquete descargado funcione.
Cómo Funciona
La mejor forma de ver el funcionamiento de Nuget es mediante un ejemplo.
Supongamos que estamos desarrollando un nuevo proyecto de ASP.NET. Sabemos que una vez puesto el proyecto en producción o durante las pruebas de integración necesitaremos de toda la información posible para resolver cualquier incidencia. Necesitamos, por tanto, de una traza o log de los diferentes sucesos del sistema.
Accedemos a la herramienta Nuget desde el menú contextual del proyecto Gestionar Paquetes, y en el cuadro de búsqueda escribimos “log“. Nuget nos devolverá los resultados que podemos ordenar según diferentes criterios, más Descargados, mejor Valorados, más Recientes…

En esta pantalla podemos ver que el tercer resultado, ELMAH, es una librería de logging que automáticamente loquea cada evento de aplicaciones ASP.NET y ASP.NET MVC. Justo lo que necesitamos y además 14 usuarios han votado 5 estrellas. Pulsamos en el botón Instalar y descargamos la librería. Automáticamente se instala en nuestro proyecto, añadiéndose como referencia al mismo.
Desde este momento podemos probar que efectivamente ELMAH funciona provocando cualquier incidencia y accediendo a la página que ELMAH proporciona automáticamente para visualizar la información registrada.
Nuget se ha encargado de descargar, instalar y configurar ELMAH para su correcto funcionamiento en nuestro proyecto. Si no hubiéramos utilizado Nuget, una vez descargado ELMAH hubiéramos tenido que realizar toda la configuración a mano:
Nuget en la empresa
Hasta este momento hemos utilizado el feed público de Nuget, el cuál nos proporciona acceso a las librerías publicadas por la comunidad y otras empresas.
En empresas de desarrollo es muy habitual, que a lo largo de los años, se vayan creando internamente un conjunto de herramientas para solucionar los problemas comunes de los proyectos que la empresa desarrolla. Generalmente dejamos estas herramientas en una carpeta compartida dentro de nuestros servidores, o en los mejores casos, dentro de una biblioteca de algún gestor de contenidos interno.
Con Nuget podemos crear feeds privados que, desde una carpeta compartida dentro de nuestra red interna, publiquen las herramientas en forma de paquetes que los desarrolladores pueden instalar directamente en sus proyectos. Esto permite aumentar la visibilidad de las herramientas comunes de la empresa y, a su vez, permite hacer efectiva las políticas de versiones y herramientas a utilizar.
Nuget.org
Desde la web nuget.org podemos a través del navegador explorar el catálogo de paquetes de Nuget disponible e incluso valorar y descargar los mismos.
Esta web es el punto central del torbellino que esta suponiendo Nuget en la comunidad de desarrolladores .NET, la mayor parte de las librerías que están saliendo ahora mismo tienen un paquete en Nuget (jQuery, ELMAH, Moq, nLog) e incluso las propias librerías de Microsoft están publicándose a través de Nuget: Entity Framework, ASP.NET MVC, Enterprise Library y muchos otros.
Conclusión
Sin duda Nuget es una herramienta que cambia radicalmente la forma que tenemos de gestionar las librerías. Nos permite Buscar y Encontrar librerías fácilmente, Instalar y configurar en segundos las librerías descargadas habilitando a los desarrolladores a Utilizar directamente la librería con tan sólo Leer la mínima documentación necesaria.
Iñaki Elcoro










Enviar comentarios