Aan de slag met NuGet 5.8

30 november 2020 om 15:30 by ParTech Media - Post a comment

NuGet 5.8 is inbegrepen in Visual Studio 16.8 en .NET 5. Je kunt NuGet 5.8 ook downloaden voor Windows, macOS en Linux als een zelfstandig uitvoerbaar bestand. De NuGet tooling helpt developers nieuwe .NET packages te ontdekken om te gebruiken voor hun .NET applicaties, terwijl het package management makkelijker gemaakt wordt tijdens je dagelijkse development.

NuGet 5.8 highlights

Er zijn veel belangrijke verbeteringen in NuGet 5.8:

  • Creëer en gebruik .NET 5 NuGet packages met *.*NET 5 Support

  • Snellere package extractie door het gebruik van MemoryMappedFiles voor Faster Writes

  • Zoek naar packages door de NuGet CLI Search Command te gebruiken

  • Snellere NuGet restores met No-Op Restore Optimization

  • Stel je package list vast met dotnet list package -verbosity

  • Installeer prerelease packages met dotnet add package -prelease

  • Verifieer getekende NuGet packages met dotnet nuget verify

  • Sneller coderen met verbeteringen in NuGet Solution Load Performance

  • Ben productiever met verbeteringen in Visual Studio Package Manager

.NET 5 Support

NuGet 5.8 is de eerste release die volledige ondersteuning biedt in het authoring en restoring voor NuGet packages gericht op .NET 5.0.

MemoryMappedFiles voor Faster Writes

Door het gebruik van mmap voor .nupkg extractie tijdens het restoren was het mogelijk om de schrijfsnelheid van Windows over het algemeen te verbeteren. Wanneer je bijvoorbeeld NuGet restore met mmap draait tegen het Orchard Core project:

MMAP verbeteringen:

Client Scenario Tijd in Seconden
GEEN mmap cold 64.08216
mmap cold 22.03339
GEEN mmap warmup 64.58149
mmap warmup 32.60708

Er is een performance verbetering van 65% voor cold (Http Cache) en een performance verbetering van 50% voor warmup (Geen Http Cache) scenario’s.

NuGet CLI Search Command

Vind snel NuGet packages door middel van de NuGet CLI met NuGet Search.

No-Op Restore optimalisatie

Een No-Op restore vindt plaats wanneer NuGet elk project checkt om zeker te weten dat niks veranderd is en het bepaald of er een gedeeltelijke of volledige NuGet restore nodig is om al jou afhankelijke delen te installeren. In NuGet 5.8 en Visual Studio 16.8 zijn optimalisaties voor projecten toegevoegd door het gebruik van . Dit heeft significante winsten gebracht ten opzichte van hoe lang een No-Op restore duurt tegenover een bestaande oplossing. Bijvoorbeeld wanneer je NuGet restore meerdere keer draait tegen het Orchard Core project:

NuGet restore:

Tool Versie Restore Tijd in seconden
DotNet CLI 3.1.402 Noop 6.929698
DotNet CLI 5.0.100 Noop 5.792257

Er is een performance verbetering van 15%+ van No-Op restores tussen .NET 3.1 en .NET 5.0. Bovendien zul je minder verschil zien tussen de performance van je No-Op restore wanneer je andere methodes gebruikt zoals NuGet CLI, MSBuild en Visual Studio.

DotNet list package -verbosity

Je kunt het MSBuild verbosity niveau verhogen wanneer je packages weergeeft voor je projecten of oplossingen.

DotNet add package -prerelease

De DotNet add package command installeert standaard de laatste stabiele versie. Je kunt nu de absolute laatste versie installeren als je de prerelease optie erbij neemt.

DotNet NuGet verify

Je kunt een NuGet package verifiëren dat gesigned is binnen de DotNet CLI. In de toekomst zal het mogelijk zijn om een NuGet package te signen met de DotNet CLI.

NuGet Solution Load Performance verbeteringen

Misschien ben je wel eens een vertraging van het laden van grote oplossingen in Visual Studio tegengekomen. Een groot gedeelte van die tijd kan gebruikt worden voor het laden van je projecten en het restoren van je packages wanneer je jouw oplossing voor het eerst opent. In NuGet 5.8 zijn twee hoofdgebieden verbeterd:

  1. De hoeveelheid van NU1105 errors die je ziet bij het laden van je oplossingen in Visual Studio zijn verminderd.

  2. Wanneer je een oplossing laadt is de No-Op restore performance verbeterd met 10%+.

Visual Studio Package Manager verbeteringen

In NuGet 5.8 en Visual Studio 2019 16.8 is een probleem verholpen waarbij projecten doorlopend werden restored. Dit is geoptimaliseerd door maar één keer te restoren terwijl het tegelijkertijd wordt gedraaid. Als resultaat zul je merken dat NuGet Package Manager UI sneller zal presteren. De ervaring zal tussen de twee en veertien keer sneller zijn wanneer de NuGet Package Manager UI wordt gebruikt met meer optimalisaties die nog zullen volgen. Ook is jouw ervaring verbeterd wanneer je package operaties gebruikt. Eerst moest je verschillende keren proberen om een package versie te up- of downgraden. De betrouwbaarheid is verbeterd om er zeker van te zijn dat je dit maar een keer hoeft te doen en de restore zal goed zijn. Tenslotte kun je veel sneller packages verwijderen voor grote oplossingen. Een project als Orchard Core omvat bijvoorbeeld 158 projecten in een oplossing. Het verwijderen van packages in deze oplossing zou eerst ongeveer 70 seconden duren. Deze tijd is verbeterd met factor twee, dat betekent dat het nog maar 30 seconden duurt om 158 projecten te verwijderen. Deze verbetering zul je ook zien bij kleinere oplossingen. Het verwijderen van een kleine oplossing met bijvoorbeeld 4 projecten duurde hiervoor 1 seconden. Dit zal nu nog maar 0.75 seconden duren.