miércoles, 13 de marzo de 2013

Managing Visual Studio extensions with NuGet

image_thumb
 
 

Introduction

NuGet is a Visual Studio extension that allows you to easily add third party libraries to a project. Net When you install a NuGet package files are automatically copied to the solution and automatically makes the necessary changes: add dependencies, modify the web.config. If you uninstall a package, NuGet "undo" those changes. NuGet is available from Visual Studio 2010.

nuget packages

Everything needed to install a package is contained in a. Nupkg. The package contains all the files to be copied to the project, a manifest file that describes the contents and the actions needed to install and uninstall the package.

 

Installation

The installation is done from the "Extension Manager" in Visual Studio (Tools menu> Extension Manager).

 

clip_image002_thumb1

clip_image004_thumb1  

It may be that the extension is already installed. Then select Updates in the left panel. For some earlier versions of NuGet, it gives an error. If this is the case, you must uninstall the previous version and then install the new version. You should check for updates to the tool as new versions are released periodically .

Add, update and remove packages


add  a package to a project

On the project contextual menu, choose "Manage Nuget Packages"

clip_image006_thumb1 

On the left of the window, select the category "Online" to display the packages available for download. To the right is a text box that enables searches.

 

image

 

Once you find the searched package, select it. In the right pane displays the package information: creator, description, version, and dependencies. To install press "Install".

clip_image010_thumb6

 

The tool downloads and installs as a dependency of the project the package with all the dependencies . If we now go to the category "Installed Packages" can see all the packages installed on the projects in the solution.

 clip_image012_thumb1

 

  clip_image014_thumb

 

  clip_image016_thumb1

 

 

The tool will create the folder "packages" at the level of the solution, where the packages are stored

clip_image018_thumb1 

In addition, the project will add a file (packages.config) containing dependencies (package identifier and version) of our project. When you add a package to a project:

  • It downloads the package and dependent packages in folder 'packages' that is created at the level of the solution.
  • It Adds the necessary references to the project.
  • Where necessary, it modifies the configuration files.
  • Packages.config file is updated with the information project of the dependencies.

If we stand on the solution, and in the context menu select the option "Manage Packages for Solution", we can see the packages installed on the entire solution. To see which projects a package is installed, press the "Manage". Right there you can make other projects you want to install.

 

clip_image020_thumb1

 

updating packages

The tool also allows you to upgrade previously installed packages to newer versions. To do this open the package management on the left and select the category "Updates". In the center pane displays all the packets for which there is a newer version available that is installed in the project. When you select a package, in the right pane displays the information that we have installed version and the new version. Clicking the "Update" button will update the package along with its dependencies.

 

image

removing packages

To remove a package, just go to the category "Installed Packages", select the appropriate package and press the "Uninstall".

image




No-Commit Strategy

One of the NuGet ‘s advantages to manage dependencies is that it allows not to commit / check-in third-party libraries to code repository. The option "Enable NuGet Package Restore" allows packets to be automatically downloaded to build the solution (if not previously downloaded). As the tool saves a configuration file in the exact versions of each component, you can download the same packages and versions that were originally added. To enable the restore, stand on the solution and from the context menu choose "Enable NuGet Package Restore".

clip_image002

 

A window will appear asking you to confirm the operation.

 image

clip_image030_thumb

At the end we will see that in the solution was added the folder ".nuget" with the files necessary to perform the restore package. Important: the restore works even without Visual Studio. For example, if you run the build with msbuild from a continuous integration tool, packages are also downloaded automatically.

Tips & Tricks

Don't add ´manually dependencies NuGet downloaded libraries: If installing a library in one of the projects in the solution using NuGet and then we need to add it in another project in the same solution, use the "Manage Packages for Solution" . If we add the reference manually (using Add Reference or the tooltip of ReSharper), NuGet will not register this dependency and will not work properly (among other things the Restore Package). Only could be added manually those units that are not being administered with NuGet.

Nuget package restore: each developer has to enable it in Visual Studio: If another developer download the Restore Package solution, it may not automatically download the dependencies. In this case check in Visual Studio, on the menu "Tools> Options" the option "Allow NuGet to download missing packages During build" is enabled. This option is automatically enabled if we configure the restore in the solution, but can be disabled in the IDE from another developer who download the solution repository

clip_image002[8]

 

References

Nuget Official Site.On the next link you can find +10000 packages , upload your own packages, query statistics , documents and a blog. http://nuget.org/

image31

 

· Documents (Excellent documentation, including samples and videos): http://docs.nuget.org/

 

Thanks to Diego Tubello and Cristian Fernandez for creating this article.

 

twitter-icon[6] 
Follow us on Twitter
Follow @baufest_ar
Follow @baufestusa

viernes, 8 de marzo de 2013

Manejando extensiones Visual Studio con NuGet

image
por Diego Tubello y Cristian Fernandez
baunet_dtubello_LThumb Cristian
Diego y Cristian se encuentran desarrollando proyectos con Visual Studio y encontraron muy útil esta extensión. En este artículo nos cuentan varios aspectos de esta utilidad.

Introducción

NuGet es una extensión de Visual Studio que permite agregar fácilmente librerías de terceros a un proyecto .Net. Cuando se instala un paquete NuGet se copian automáticamente los archivos a la solución y hacen automáticamente los cambios que sean necesarios: agrega dependencias, modifica el web.config. Si se desinstala un paquete, NuGet “deshace” estos cambios. NuGet esta disponible a partir de Visual Studio 2010.

 

Paquetes NuGet

Todo lo necesario para instalar un paquete se contiene en un archivo .nupkg. El paquete contiene todos los archivos que se deben copiar al proyecto, un archivo manifest que describe su contenido y las acciones necesarias para instalar y desinstalar el paquete.

 

Instalación

La instalación se realiza desde el “Extension Manager” de Visual Studio (menú Tools > Extension Manager). clip_image002 clip_image004 Puede ser que la extensión ya se encuentre instalada. En ese caso seleccionar la opción Updates en el panel de la izquierda. Para algunas versiones anteriores de NuGet, da un error al actualizarlo. Si se da este caso, es necesario desinstalar la versión previa para luego instalar la nueva versión. Es recomendable verificar si hay actualizaciones de la herramienta ya que re lanzan nuevas versiones periódicamente.

Agregar, actualizar y remover paquetes


Agregar un paquete a un proyecto

Sobre el proyecto, desplegar el menú contextual y elegir “Manage Nuget Packages” clip_image006 Sobre la izquierda de la ventana, seleccionar la categoría “Online”, para que aparezcan los paquetes disponibles para descargar. A la derecha hay un cuadro de texto que permite hacer búsquedas. clip_image008 Una vez que encontramos el paquete buscado, seleccionarlo. En el panel de la derecha aparecerá la información del paquete: creador, descripción, versión y dependencias. Para instalarlo presionar “Install”. clip_image010 La herramienta descargará e instalara como dependencia del proyecto el paquete junto con todas las dependencias que este tenga a su vez. Si ahora vamos a la categoría “Installed Packages” podemos ver todos los paquetes instalados en los proyectos de la solución. clip_image012 clip_image014 clip_image016 La herramienta creará la carpeta “packages” a nivel de la solución, donde almacenará los paquetes descargados. clip_image018 Por otro lado, en el proyecto se agregará un archivo (packages.config) que contendrá las dependencias (identificador de paquete y versión) de nuestro proyecto. Cuando se añade un paquete a un proyecto:
  • Se descarga el paquete y los paquetes dependientes en la carpeta ‘packages’ que se crea a nivel de la solución.
  • Se añaden las referencias necesarias al proyecto.
  • En su caso se modifican los archivos de configuración necesarios.
  • Se actualiza el archivo packages.config del proyecto con la información de las nuevas dependencias.
Si nos paramos sobre la solución, y en el menú contextual elegimos la opción “Manage Packages for Solution”, podemos ver los paquetes instalados en toda la solución. Para ver en qué proyectos está instalado un paquete, presionar el botón “Manage”. Ahí mismo se pueden marcar otros proyectos en los que se desea instalarlo. clip_image020

 

 

 

 

Actualización de Paquetes

La herramienta también permite actualizar los paquetes previamente instalados a nuevas versiones. Para ello abrir la ventana de administración de paquetes y sobre la izquierda seleccionar la categoría “Updates”. En el panel central aparecerán todos los paquetes para los cuales hay una versión más reciente disponible que la que está instalada en el proyecto. Al seleccionar un paquete, en el panel de la derecha aparece la información de la versión que tenemos instalada y la nueva versión. Al presionar el botón “Update” se actualizará el paquete junto con sus dependencias. clip_image022

 

 

 

Remover paquetes

Para remover un paquete, basta con ir a la categoría “Installed Packages”, seleccionar el paquete correspondiente y presionar el botón “Uninstall”. clip_image024

 




 

No-Commit Strategy

Una de las ventajas que tiene NuGet para gestionar dependencias es que permite no hacer commit/check-in de las librerías de terceros al repositorio de código. La opción “Enable NuGet Package Restore”, permite que los paquetes se descarguen automáticamente al compilar la solución (si no se descargaron previamente). Como la herramienta guarda en un archivo de configuración las versiones exactas de cada componente, puede descargar los mismos paquetes y versiones que se agregaron originalmente. Para habilitar el restore, pararse sobre la solución y en el menú contextual elegir la opción “Enable NuGet Package Restore”. clip_image026 Nos aparecerá una ventana pidiendo que confirmemos la operación. clip_image028 clip_image030 Al finalizar veremos que en la solución se agregó la carpeta “.nuget” con los archivos necesarios para poder realizar la restauración de paquetes. Importante: el restore funciona incluso sin Visual Studio. Por ejemplo, si se ejecuta el build con msbuild desde una herramienta de integración continua, los paquetes también se descargarán automáticamente.

 

Tips & Tricks

No agregar dependencias a mano de librerías descargadas con NuGet: Si instalamos una librería en uno de los proyectos de la solución usando NuGet y luego debemos agregarla en otro de los proyectos de la misma solución, hay que utilizar la opción “Manage Packages for Solution”. Si agregamos la referencia a mano (usando Add Reference o el tooltip de resharper), NuGet no registrará que agregamos esa dependencia y no funcionará correctamente (entre otras cosas el Package Restore). Sólo se deberían agregar a mano aquellas dependencias que no se estén administrando con NuGet. Nuget package restore: cada desarrollador tiene que activarlo en Visual Studio: Si otro desarrollador descarga la solución con Package Restore, puede ser que no se descarguen automáticamente las dependencias. En este caso verificar en Visual Studio, en el menú “Tools > Options” que la opción “Allow NuGet to download missing packages during build” esté habilitada. Esta opción se habilita automáticamente si nosotros configuramos el restore en la solución, pero puede estar deshabilitada en el IDE de otro desarrollador que descarga la solución del repositorio clip_image032

Referencias

· Sitio oficial de NuGet En el siguiente link van a poder encontrar mas de 10000 packages , subir tus propios packages, consultar estadisticas, documentacion y blog. http://nuget.org/ image · Documentación (muy completa, incluye ejemplos y videos): http://docs.nuget.org/

twitter-icon
Seguinos en Twitter
Seguir a @baufest_ar
Seguir a @baufestusa