NuGet

Wanneer je als software ontwikkelaar een externe library wilt gebruiken in je project, dan kan dat soms een hele klus zijn. De juiste versie van de library en eventuele dependencies moet worden gezocht en handmatig toegevoegd aan het project. Vervolgens moet alle informatie over Web.config instellingen vaak van onduidelijke webpagina’s gehaald worden. NuGet neemt je dit werk uit handen en kan nog meer.

NuGet is een open source package manager van Microsoft, met een zeer goede integratie in Visual Studio. Het doel van de makers is om het zo makkelijk mogelijk te maken voor ontwikkelaars om externe libraries te vinden, in hun project te krijgen en up-to-date te houden. Ook het deïnstalleren van de library is met een paar muiskliks voor elkaar. Dit alles kan dus een hoop tijd schelen.

Op het congres Mix11 hebben Phil Haack en Scott Hanselman een presentatie gegeven over NuGet waarin veel van de in dit artikel besproken informatie uitgebreider aan bod komt: NuGet In Depth.

Op het moment van het schrijven van dit artikel is het nog nodig om NuGet te installeren als extensie voor Visual Studio, maar in de toekomst wordt het standaard meegeleverd. MVC 3 gebruikt het nu al voor haar dependencies. Hierdoor kun je makkelijk je MVC 3 solution updaten met de nieuwste versies van onder andere  jQuery en het Entity framework (zie het voorbeeld hieronder). Voorheen moest je hiervoor eerst alle bestanden en eventuele dependencies handmatig verwijderen en vervolgens de nieuwe toevoegen.


NuGet updates voor MVC3

Hoe werkt het?

Op het moment dat je een NuGet package zoekt kun je in Visual Studio zelf of op de website van NuGet terecht. De twee onderstaande afbeeldingen tonen hoe het werkt in Visual Studio zelf, waar we zoeken naar het package Elmah (welke allerhande logging mogelijkheden biedt). Eerst selecteren we “Manage NuGet Packages…” via het rechtermuismenu van de solution.


Naar de NuGet Gallery.

Vervolgens zoeken we op het woord Elmah en klikken we op de “Install” knop. Op dat moment wordt er een reference dll aan het project toegevoegd en worden de standaard waarden voor de Web.config ingevuld. De Web.config waarden zijn indien gewenst uiteraard nog aan te passen daarna.


NuGet package installeren

Of we nu een package kiezen met of zonder dependencies, het werkt op dezelfde manier. Alles wordt automatisch goed gezet. Deïnstallatie werkt op dezelfde manier, waarbij met een druk op de “Uninstall” knop het package in zijn geheel verwijderd wordt. Indien er dependencies zijn wordt er gevraagd of die ook verwijderd moeten worden.

Zelf NuGet packages maken of beheren

Standaard wordt als plek waar de packages vandaan komen, de package source, de server van het NuGet project gebruikt. Het is echter ook mogelijk om één of meer andere bronnen toe te voegen. Deze bronnen hoeven zich niet eens op internet te bevinden, het is ook mogelijk om bijvoorbeeld een niet publieke server te hebben binnen het bedrijfsnetwerk. Er zijn drie mogelijkheden voor het maken van een eigen package source:

  1. Een (shared network) folder, waarbij de packages gewoon via het bestandssysteem, middels NuGet bereikbaar zijn.
  2. Een minimale server. Hierbij maak je een lege ASP.NET website en voeg je het NuGet server package toe aan het project. Je moet dan wel, net als bij de folder methode, zelf de packages handmatig toevoegen op de server.
  3. Een uitgebreide server, waarbij alles werkt zoals de officiële nuget.org server, waaronder de mogelijkheid van het toevoegen van packages door ontwikkelaars zelf. Dit kan, omdat de sourcecode van nuget.org open source is en dus beschikbaar voor eigen gebruik. Je draait dan dus een volledige NuGet server. Het enige verschil is dat je dan niet de packages van de officiële server beschikbaar stelt, maar die van je eigen ontwikkelaars.

Wanneer je een Visual Studio project hebt gemaakt welke je op de package server wilt publiceren dan kan dat vrij eenvoudig. Dit kan gewoon op de officiële NuGet server zelf, waar je dan nog wel even een account moet aanmaken. Het enige dat je hoeft te doen is een zogeheten spec file aan te maken, of te laten genereren en aanvullen. Hierin staat informatie over je package. Vervolgens gebruik je het nuget programma om je package te uploaden, ook wel pushen genoemd, naar de server. Voor meer informatie zie de NuGet documentatie hierover.

Conclusie

Binnen het e-business team van Tam Tam gebruiken wij NuGet tegenwoordig regelmatig omdat het ten eerste tijd scheelt en ten tweede updates minder foutgevoelig zijn. Het systeem is een aanrader en zoals het er nu uitziet zal Microsoft zelf er ook veel gebruik van gaan maken. Dit laatste is bijvoorbeeld te zien aan het al genoemde voorbeeld van de MVC 3 dependency packages.
Het succes van NuGet hangt uiteraard ook af van de hoeveelheid goede packages die er via verkrijgbaar zijn. Dat ziet er nu al veelbelovend uit, zoals te zien is in de package gallery.

 

Bart

3 reacties op “NuGet”

  1. Mr.Mark zegt:

    Dst ziet er inderdaad wonderbaarlijk uit. Komt dit ook voor Mac? Ben bang dat dit alleen voor Microsoft Windows wordt ontwikkeld.

  2. Nu ben ik blij dat ik deze site zag, precies de passende informatie die wilde!

  3. Ik denk dat andere site eigenaars moeten deze website nemen als een model, zeer schoon en een uitstekende gebruiksvriendelijk stijl en design, laat staan ​​de inhoud. Je bent een expert in dit onderwerp!

Geef een reactie

Nieuwsbrief