Mag ik u voorstellen.. NuGet Package Manager!

NuGet

Wat is NuGet?

NuGet is een Visual Studio extensie die het super gemakkelijk maakt om (meestal) open source libraries in Visual Studio projecten toe te beheren. Met NuGet kan je ook je zelfontwikkelde library als NuGet Package in een NuGet repository onder brengen om aan te bieden aan andere ontwikkelaars. Op die manier kun je ook libraries die door anderen zijn ontwikkeld afhalen van de repository en in je eigen Visual Studio project of solution opnemen.

Je zou NuGet kunnen vergelijken met package managers als apt-get en Synaptic onder Linux of eerder nog met Gems voor Ruby, in die zin dat NuGet geen software of tools installeert, maar libraries binnenhaalt en in je project opneemt en beheert.

NuGet voor ontwikkelaars

Waar je als ontwikkelaar vroeger nog zelf verantwoordelijk was om libraries te zoeken, te downloaden en in je project op te nemen, doet NuGet dit nu allemaal voor jou. Je hoeft je ook geen zorgen te maken bij upgrades en dependencies van andere libraries omdat NuGet deze taak nu op zich neemt.

Je hoeft ook niet langer pagina’s documentatie uit te pluizen eer je aan de slag kunt. Want zelfs het prutsen in configuratie bestanden en initialisatie code behoort nu (grotendeels) tot het verleden. NuGet is in staat deze voor jou aan te passen en zelfs bij een de-installatie weer proper op te ruimen.

Zie de blogpost http://anthoroscratchpad.blogspot.com/2011/05/introducing-nuget.html voor een meer technische uitleg (engels).

NuGet voor software publishers

Als software publisher kan je met NuGet je eigen pareltjes aanbieden aan het grote publiek door deze eenvoudig weg als package aan de, al dan niet zelf gehoste, repository toe te voegen.

NuGet voor architects

Je kan ook je eigen NuGet server opzetten om zo je libraries aan te bieden aan de ontwikkelaars binnen je bedrijf. Zo kan je als bedrijf je in-house ontwikkelde libraries verspreiden onder je onwikkelaars, en hebben deze steeds de laatste versie met de juiste dependencies in hun projecten.

Op die manier kan je ook packages aan maken die, door middel van dependencies, een project template vormen om bijvoorbeeld logging, data access of andere libraries als kant-en-klare project configuraties aan te bieden.

Meer Info