Nuget: inteligentná správa používaných knižníc

Nuget

Ak pracujete na aspoň trochu rozsiahlejších projektoch, určite sa nevyhnete používaniu cudzích knižníc. Či už ide o open-source, komerčné alebo vlastné knižnice, princíp ich použitia je vždy rovnaký. Knižnicu treba nájsť, stiahnuť správnu verziu, rozbaliť, nalinkovať do projektu, nakonfigurovať. Našťastie existuje Nuget, ktorý vykoná všetky tieto operácie za vás.

Nuget je open-source balíčkovací systém pre platformu .NET zameraný na vývojárov. Môžete si ho stiahnuť ako rozšírenie do Visual Studia, funguje dokonca aj s Express verziami. Pokročilí používatelia ocenia ovládanie z Power Shellu.

Inštalácia knižníc

Po inštalácií Nugetu vám vo Visual Studiu pribudne v kontextovom menu referencií voľba Add Library Package Reference, pomocou ktorej sa dostanete do Nuget galérie. Nuget galéria je niečo ako katalóg rozšírení (prístupný aj cez webové rozhranie na http://nuget.org ). V tomto katalógu môžete knižnice vyhľadávať. Knižnicu nainštalujete kliknutím na tlačidlo Install.

Inštalácie cez grafické rozhranie

Inštalácia knižníc cez grafické rozhranie

Správa knižníc

Jednou z hlavných výhod Nugetu je, že ak cez Nuget nainštalujete nejakú knižnicu, nainštaluje sa vrátane všetkých závislostí. Nemusíte teda zdĺhavo skúmať závislosti knižnice, ktorú chcete použiť a postupne ich inštalovať, Nuget stiahne všetko za vás.

Nuget zvládne aj konfiguráciu stiahnutých knižníc, napríklad zápis do web.config. Ďalšou výhodou je možnosť jednoduchej aktualizácie používaných knižníc. Na aktualizáciu je najlepšie použiť Power Shell, ktorý je dostupný priamo z Visual Studia pomocou voľby Tools | Library Package Manager | Package Manager Console.

Zoznam knižníc, pre ktoré existujú aktualizácie, získate príkazom Get-Package -Updates.

Použitie cez Power Shell

Použitie cez Power Shell

Knižnicu aktualizujete príkazom Update-Package Id, kde ID je identifikátor knižnice. Knižnicu odinštalujete pomocou Uninstall-Package Id.

Použitie vlastných knižníc

Okrem oficiálnej Nuget galérie je možné používať akýkoľvek iný katalóg knižníc. Nemusí byť ani na webe, môže to byť lokálny alebo sieťový adresár. Nuget sa vďaka tomu stáva vhodným nástrojom na distribúciu knižníc v rámci firmy alebo vývojového týmu. Vytvorenie Nuget balíčka nie je nič zložité.

Vytvorenie vlastného balíčka

Na vytvorenie balíčka je potrebné stiahnuť si NuGet.exe. Najjednoduchším spôsobom, ako vytvoriť Nuget balíček, je jeho tvorba priamo z assembly (DLL súbor). Prvým krokom je vytvorenie nuspec súboru príkazom nuget spec MyAssembly.dll. Nuspec súbor je XML súbor popisujúci budúci Nuget balíček. Môžete v ňom vyplniť popis, poznámky, závislosti a pod. Samotná Nuget balíček vytvoríte príkazom nuget pack MyAssembly.nuspec. Výsledkom je súbor s príponou nupkg, ktorý je vlastne zip súborom s presne definovanou štruktúrou.

Pri tvorbe Nuget balíčka priamo z projektu je potrebné zavolať Nuget spec priamo na súboru projektu, napr. nuget pack MyProject.csproj, čím sa vytvorí už spomínaný nuspec súbor. Samotný Nuget balíček vytvoríte pomocou nuget pack MyProject.csproj. Cestu k nuspec súboru nie je potrebné zadávať, Nuget.exe si ho nájde sám. Problémom takto vytvoreného Nuget balíčka je, že berie skompilovanú assembly z predvolenej build konfigurácie, čo je vo väčšine pripadov Debug. Meniť nastavenie projektu nie je vždy vhodné, Nuget.exe naštastie obsahuje prepínač -Prop, pomocou ktorého môžete build konfiguráciu, ktorá sa má použiť, zmeniť. V našom príklade použijete príkaz nuget pack MyProject.csproj -Prop Configuration=Re­lease. Vytvárnie zložitejších Nuget balíčkov s konfiguráciou je dobre opísané v dokumentácii.

Použitie lokálneho repozitára

Ako lokálny repozitár (galéria) je možné použiť akýkoľvek lokálny alebo sieťový adresár. V Nugete tento adresár pridáte pomocou Tools | Library Package Manager | Package Manager Settings | Package Sources. Do tohto adresára už následne len stačí skopírovať nupkg súbory a budú v Nugete k dispozícii.

Vlastný Nuget balíček v lokálnom repozitári

Vlastný Nuget balíček v lokálnom repozitári

Záver

Nuget je skvelý nástroj, ktorý sa určite oplatí vyskúšať. Dokáže vám ušetriť čas a námahu pri používaní rôznych knižníc a s trochou konfigurácie ho môžete používať aj ako silný firemný nástroj.

Autor je absolventom softvérového inžinierstva na Univerzite Karlovej v Prahe, pracuje ako Windows Azure a Windows Phone vývojár v Inmite, občas publikuje a prednáša.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 6

Přehled komentářů

blizz Re: Nuget: inteligentná správa používaných knižníc
MartinSura Nuget - restore
jondy NuGet
MartinSura Re: NuGet
Aleš Roubíček Re: NuGet
MartinSura Re: NuGet
Zdroj: http://www.zdrojak.cz/?p=3651