DevelopmentAan de slag met Dotnet Script

Aan de slag met Dotnet Script

Voor een programmeur zijn de volgende scenario’s vast herkenbaar:

Voor de ontwikkeling van een applicatie krijg je een groot aantal bestanden aangeleverd die geïmporteerd moeten worden. Dit één voor één met de hand doen kost dagen aan werk.

Of misschien ken je deze wel:

Om een stuk code te kunnen testen moet je een aantal handelingen doen om de te testen code te activeren.

Het zou makkelijk zijn om dit te automatiseren.

Meestal ga je dan aan de slag met bijvoorbeeld PowerShell of een ander scripting taal.

Deze scripting talen zijn wat betreft syntax en werking echter significant anders dan wat je als C#-ontwikkelaar gewend ben.

Sinds .NET Core 2.1 is het ook mogelijk om C# scripts te gebruiken d.m.v. de tool dotnet-script.

Voordelen Dotnet script

Waarom zou je dotnet script gebruiken boven bijvoorbeeld PowerShell? Powershell heeft toch ook ondersteuning voor .NET Framework? Dotnet script heeft drie grote voordelen boven PowerShell.

  1. Dotnet script is platform onafhankelijk (dan wel door een kleine toevoeging in je script).
  2. Dotnet script heeft goede ondersteuning voor NuGet (waarover later meer).
  3. Zoals eerder genoemd: Je hoeft geen nieuwe syntax te leren.

Hoe gebruik je Dotnet script?

Om Dotnet-script te kunnen gebruiken dien je minimaal .NET Core 2.1+ SDK te geïnstalleerd te hebben. Als je ook de C# 8.0 syntax wil gebruiken, dien je ook .NET Core 3.1+ SDK geïnstalleerd te hebben.

Hierna kan Dotnet-Script globaal installeren met het volgende commando:

dotnet tool install -g dotnet-script

Hiermee is het mogelijk om overal het commando dotnet-script te gebruiken. Na de installatie is het bijvoorbeeld mogelijk om inline in de CLI code uit te voeren. Start hiervoor een standaard command prompt en run het commando dotnet-script.

Het is ook mogelijk om gebruikt te maken van script bestanden.

Script bestanden hebben de .csx extensie en kunnen ook direct vanuit de command prompt worden aangeroepen.

dotnet-script helloworld.csx

Scaffolding

Om te beginnen met dotnet-script is het makkelijkste om de scaffolding mogelijkheid te gebruiken. Hiermee wordt er een script bestand aangemaakt, maar ook alle ondersteunde bestanden voor het gebruik in VSCode.

Je kun hiervoor het volgende commando gebruiken.

dotnet-script init

 

Na de scaffolding is het direct mogelijk om het script bestand in VSCode te open en je code te schrijven.

Zie hieronder een hello world voorbeeld.

Dotnet Script

Dotnet Script

Debugging

Vanuit VSCode is het ook mogelijk om je code te debuggen. Hiervoor zet je voor de regel die je wil inspecteren een breakpoint en run je het script in debug modus (F5) zoals je in VSCode gewend bent.

Dotnet Script

NuGet

Dotnet-script heeft ook ondersteuning voor NuGet packages. Deze kunnen worden toegevoegd d.m.v. de #r syntax.

Dotnet Script

Daarnaast is het ook mogelijk om gebruik te maken van code uit je applicatie door direct een referentie te maken naar je eigen dll. Hiermee kan je direct gebruik maken van je services uit je eigen applicatie.

Je kunt deze ook met de #r syntax toevoegen zoals hieronder aangegeven:

Dotnet Script

Script argumenten

Aan ieder script kunnen ook argumenten worden meegegeven. Hierdoor kan je je scripts generieker gebruiken door de argumenten mee te geven bij het uitvoeren van je script.

Een voorbeeld:

Dotnet Script

Om dit script te kunnen runnen dien je de volgende syntax te gebruiken.

dotnet-script main-arguments.csx -– arg1 arg2

De -- zorgt er voor dat de argumenten die hier achter staan aan het script main-arguments.csx worden meegegeven en geen argument van dotnet-script commando zijn.

Dotnet Script

Gebruik meerdere bestanden

Als je script complexer wordt, is het mogelijk om je script op te splitsen in meerdere bestanden.

Om een andere script bestand te gebruiken, kun je de #load syntax gebruiken.

Dotnet Script

Conclusie

Dotnet-script geeft ontwikkelaars de mogelijkheid om laagdrempelig taken te automatiseren bij het ontwikkelen van een applicatie. Hiermee is het makkelijk om in je tools bestaande code vanuit je project of nuget packages te gebruiken.

Wil je meer weten over de mogelijkheden van dotnet-script bekijk dan de documentatie op de github-pagina van dotnet-script.

Ferdi van Til - Software Developer

  • Applicatie-modernisering-banner