NuGet = Gold Nugget ?

Présentation

NuGet? Déjà entendu parlé? Déjà utilisé? Un peu, pas beaucoup, beaucoup? Bien, mal?

Quelle que soit votre réponse aux questions ci-dessus, j’espère que ce billet vous aidera à mieux utiliser cette nouvelle pépite ajoutée au coffre déjà bien garni de Visual Studio.

Tout d’abord, de quoi s’agit-il?

NuGet est un système gratuit, Open Source, orienté développeur, de gestion des packages pour la plateforme .Net, dont l’intention est de simplifier le processus d’incorporation de librairies tierce partie dans une application .Net pendant son développement. Le site du projet est ici: http://nuget.codeplex.com/

Comme vous le savez sans doute, il existe un très grand nombre de librairies disponibles pour vos projets .Net, malheureusement, les étapes nécessaires à leur mise en œuvre sont quelque peu tortueuses, (notamment la mise à jour du app.config où web.config), surtout si l’on ajoute l’éventuelle dépendance à d’autres librairies, et les futures mises à jour.

NuGet automatise toutes ces tâches, pour un package donné et TOUTES ses dépendances. Il élimine pratiquement toutes les difficultés à incorporer une librairie tierce dans un projet.

Installation

NuGet s’installe comme une extension à Visual Studio. Il est déjà installé si vous avez MVC 3 où 4, tout comme avec l’installation de Visual Studio Express 2012 pour le Web. Pour d’autres versions, vous pouvez commencer par vérifier si NuGet est déjà installé dans Visual Studio.

Bug 153854 - Microsoft Visual Studio (Administrator) (2)_3

Si vous voyez le sous menu “Console du Gestionnaire de Packages” (si votre version de Visual Studio est en français), tout va bien. Sinon, installez NuGet depuis le menu Outils/Extensions.

Utilisation

Avant toute autre chose, je vous conseille d’aller vérifier dans les options que NuGet est autorisé à télécharger les packages manquants lors de la génération. (Je vous explique le pourquoi de cette option un peu plus bas…)

Ecran_Options_NuGet

Comme NuGet est destiné à faciliter l’ajout de librairies tierces dans votre projet, le mieux est sans doute de démarrer un projet pour voir son utilisation réelle.

Fichier/Nouveau Projet/ Application Web ASP.NET MVC 4. Comme modèle de projet, je choisis “Application Internet”

Une fois la structure de l’application visible dans l’explorateur de solutions, ouvrez la console du gestionnaire de packages, et tapez “Update-Package”

Update_Packages

Le Template utilise NuGet pour l’installation de plusieurs librairies, mais comme il a été créé il y a certainement déjà plusieurs mois, faire une mise à jour avant de commencer à travailler est une bonne idée. En même temps cela vous permet de voir et d’utiliser pour la première fois la console de NuGet.  Il est intéressant de voir que cet outil Open-Source est utilisé intensivement par des Templates livrées directement avec l’outil de développement.

Il y a une nouvelle étape importante dans l’utilisation de NuGet que je ne peux que vous conseiller, mais il nous faut tout d’abord transformer notre projet en solution, en ajoutant un nouveau projet. Pour cela il faut aller dans le menu Fichier/Nouveau Projet/Windows/Bibliothèque de classes(par exemple). Sélectionnez “Ajouter à la solution” pour l’option Solution,

AjouteralaSolution

puis cliquez sur OK.

Sélectionnez maintenant la Solution dans l’explorateur, clic droit pour faire apparaitre le menu contextuel, et sélectionnez “Activer la restauration du package NuGet”

nugetRestoreFolder

Vous verrez un nouveau dossier apparaitre dans la solution. Quel est le but? Associée à l’option “Autoriser à télécharger les packages manquants lors de la génération”, ce nouveau dossier va permettre à NuGet de na pas archiver les packages dans Team Foundation Server, tout en assurant que ceux-ci soient téléchargés pour la génération, s’ils ne sont pas déjà la. Si vous travaillez seul, les packages sont installés par NuGet sur votre machine, le problème ne se pose donc pas. Par contre, si vous êtes en équipe et utilisez un système de contrôle de version, cette fonctionnalité vous assure que (1) vous ne surchargez pas votre serveur inutilement, (2) que tout les membres de l’équipe travaillent avec la même version des librairies externes. Aucune mise à jour n’est faite à ce moment, NuGet assure au contraire une concordance entre le packages.config et les librairies nécessaires au build. Si un nouveau développeur rejoint votre équipe, la seule chose à faire est de récupérer la dernière version des sources pour que toutes les librairies complémentaires soient automatiquement téléchargées lors de sa première génération de la solution!

Maintenant que NuGet est installé et que les réglages de base sont effectués, vous pouvez aller chercher des librairies pour accélérer votre développement et vous faciliter la vie. Le fil à couper le beurre existe, pas besoin de le réinventer! Par exemple, si je souhaites ajouter à mon projet MVC la capacité d’envoyer des emails utilisant les vues MVC comme corps du message, je peux aller chercher et installer MvcMailer.

MvcMailer

Il est aussi possible d’utiliser la console, pour installer de nouveaux packages, mais aussi, comme déjà montré, pour les mettre à jour en une seule commande, désinstaller, lister ceux déjà installer, où lister tous ceux qui sont disponibles, mais là, prévoyez du temps……

NuGet rend très facile l’utilisation de librairies tierces dans vos projets .Net, et il serait dommage de passer à coter de cette pépite.

Vous pouvez aussi créer vos propres packages, soit à usage interne dans votre entreprise, où destinés à la communauté. Pour creuser plus le sujet, que ce billet ne fait que survoler, allez sur le site NuGet, et/ou procurez-vous l’ouvrage de référence:

Publié dans .Net, C#, ASP.NET MVC 4.0, Team Foundation Server Tagués avec : , ,
8 commentaires sur “NuGet = Gold Nugget ?
  1. Mauricio Tedford dit :

    Greetings from California! I’m bored to death at work so I decided to browse your blog on my iphone during lunch break. I really like the info you provide here and can’t wait to take a look when I get home. I’m amazed at how fast your blog loaded on my phone .. I’m not even using WIFI, just 3G .. Anyhow, awesome site! Mauricio Tedford

  2. THEASPMAPLE dit :

    Oh my goodness! an amazing post dude. Thank you Still I am experiencing issue with ur rss . Don’t know why Unable to subscribe to it. Is there any individual finding identical rss problem? Anyone who knows kindly respond. Thnkx

    christian louboutin simple pumps

  3. 4 Good Blog U Have Here.. Very Informative Subject For A Blog Keep Up The Really Good Ideas!. Check Out A Free Winnipeg Computer Repair Website And Tell Me What You Think!!!!!

  4. THEASPMAPLE dit :

    I discovered your blog web page on google and check a few of your early posts. Continue to maintain up the quite good operate. I just extra up your RSS feed to my MSN News Reader. Looking for forward to reading even more from you later on!

    christian louboutin online store]

  5. Anonyme dit :

    That is the correct weblog for anyone who wants to find out about this topic. You notice a lot its nearly exhausting to argue with you (not that I actually would want…HaHa). You definitely put a new spin on a topic thats been written about for years. Nice stuff, just great!

  6. Anonyme dit :

    I’ve been surfing online more than 3 hours these days, yet I never found any fascinating article like yours. It’s pretty worth enough for me. In my opinion, if all website owners and bloggers made excellent content as you did, the net will probably be a lot more helpful than ever before.

  7. Bernard dit :

    You're welcome. Hope it helps, don't hesitate to ask if you need explanations on a specific point.

  8. retro jordans dit :

    As a Newbie, I am always searching online for articles that can aid me. Thank you

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Lettre d’information

Recherche sur le Site

Recherche personnalisée