DOTNET (.NET Core)

Het Microsoft .NET Core framework

Het .NET (dotnet) Framework is een populair platform om software te schrijven voor Microsoft Windows (Het is dan ook ontwikkeld door Microsoft en omvat oa. de programmeertalen C# (C-Sharp), Visual Basic en F#.

Nu Microsoft haar officiële standpunt van Linux (en andere Free Software) heeft aangepast naar "Microsoft Loves Linux", hebben ze een gedeelte van dit framework beschikbaar gesteld voor Linux gebruikers.

Ze hebben niet het volledige framework beschikbaar gemaakt, maar ".NET Core" onder een MIT Licensie.

.NET Core laat toe om websites, services en console toepassingen te maken, dus geen GUI toepassingen die je onder windows in Visual Studio kunt maken. Om GUI software te maken kun je we MonoDevelop gebruiken, de broncode kan in monodevelop of Visual Studio geschreven worden (eventueel onder Windows) en kan met MonoDevelop als "cross-platform" gecompileerd worden en krijg je een programma dat op zowel Windows, Linux en macOS zou moeten werken.

Maar omdat wij ons hier vooral bezig houden met de commandoregel gaan we ons beperken tot het gebruik van .NET Core. Ook spreek ik me niet uit over het gebruik van C# op of voor Linux, Als je een programmeertaal wil gaan leren met Linux als grootste doel is .NET misschien niet de beste keuze. Maar voor mensen die al bekend zijn met C# en die hun programma's ook willen gebruiken op Linux is dit een mogelijkheid. Nadeel is wel dat je om een programma uit te voeren de SDK of Runtimes voor .NET Core geïnstalleerd moet hebben (wat bij bijvoorbeeld C of C++ niet nodig is).

Om .NET Core te installeren op Linux kun je de instructies op de officiële site van Microsoft volgen. Je kunt bijvoorbeeld hun Tutorial "Hello World in 10 minutes" volgen. Deze omvat de installatie voor verschillende Linux distro's zoals RHEL, Ubuntu, Debian 9, Fedora, CentOS, OpenSuSE Leap en SLES.

Zelf maak ik gebruik van Debian 10 (codenaam Buster) en deze wordt momenteel niet ondersteund. Dus ik kan deze instructies niet gebruiken en moet de installatie dus iets anders uitvoeren:

wget https://download.microsoft.com/download/8/8/5/88544F33-836A-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-x64.tar.gz

dit zal versie 2.1.300 van de .NET Core SDK downloaden, natuurlijk kun je altijd een andere (nieuwere) versie downloaden.

mkdir -p ~/dotnet && tar zxf dotnet-sdk-2.1.300-linux-x64.tar.gz -C ~/dotnet

Maak een directory genaamd dotnet aan in de home directory van de gebruiker en pak dotnet uit in deze directory

export PATH=$PATH:$HOME/dotnet

Zorgt ervoor dat je dotnet vanuit iedere directory kunt uitvoeren (je kunt deze directory best toevoegen aan ~/.profile of ~/.bashrc anders moet je dit commando ingeven na het openen van een nieuw console venster

dotnet --version

Als je dotnet correct geïnstalleerd hebt zul je nu het versienummer 2.1.300 te zien krijgen.

Nu kunnen we beginnen met het maken van ons eerste programma. Omdat het een console programma is gebruiken we het commando dotnet new console (doe dit in de directory waar je het programma wil maken, bijvoorbeeld ~/code/hello.

De eerste keer zal het even duren voor dotnet klaar is, en het is mogelijk dat je een foutmelding krijgt (libssl1.0 is nodig en bij Debian 10 is libssl1.1 geïnstalleerd), Een tussenoplossing is het activeren van multiarch-support (sudo apt install multiarch-support) en het installeren van het libssl1.0.0_1.0.1t-1+deb8u11_amd64.deb pakket (dit is een libssl1.0 pakket dat oorspronkelijk afkmstig is van Debian 8 (Jessie).

Figuur 1. $ dotnet new console
$ dotnet new console

Nu kun je met je favoriete editor het bestand Program.cs bewerken en jouw eerste programma schrijven.

using System;

namespace hello
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hallo Commandoregel!");
        }
    }
}
Figuur 2. Program.cs in Vim
Program.cs in Vim

Het programma kun je simpelweg uitvoeren met het commando dotnet run Program.cs

Figuur 3. $ dotnet run Program.cs
$ dotnet run Program.cs

Veel plezier met programmeren ;-)