n00b pro

C#.NET in Notepad++

Dit hoofdstuk is onderdeel van de cursus Ontwikkelomgeving. Andere cursussen in dezelfde reeks: HTML, CSS, Javascript, C#.

Installatie software

Voor dit deel heb je niet veel nodig; download en installeer het volgende (uitleg volgt later):

open dit bestand om Notepad++ te starten

C#.NET programmeren in Notepad++

De titel bestaat uit drie delen: C#, .NET en Notepad++. We leggen hier uit wat elk betekent.

C#: de programmeertaal

Er zijn veel programmeertalen: Javascript, Python, C#, Ruby... Een programmeertaal legt de regels vast (grammatica, of syntax) volgens dewelke code geschreven wordt. Een vergelijking van C# met bijvoorbeeld Javascript, Ruby en Python:

for (int i = 1; i <= 5; i++) 
{          
   if (i % 2 == 0) Console.WriteLine(i);
}
for (let i = 1; i <= 5; i++) {          
   if (i % 2 == 0) console.log(i);
}  
(1..5).each do |i|
   puts i if i.even?
end
for i in range(1, 6):
   if i % 2 == 0:
      print(i)

.NET: het framework

Naast een programmeertaal, heb je ook een context nodig, i.e. de omgeving waarbinnen je de taal wil gebruiken. C# is sterk verbonden met het .NET Framework, gebruikt om Windows toepassingen te schrijven. Dit bestaat hoofdzakelijk uit een bundel pakketten met voorgeschreven code, georganiseerd in een boomstructuur of namespaces. Enkele die je regelmatig zal tegenkomen:

namespace omschrijving
System basisfuncties: schrijven/lezen in console, random getallen...
System.Collections.Generic lijsten, dictionaries, sets
System.IO bestanden en mappen
System.Text tekstbewerking, StringBuilder

Om een namespace te gebruiken in je programma, moet je het bovenaan toevoegen:

using System;
using System.Collections.Generic;
... 	 		

C# wordt ook in andere omgevingen gebruikt dan .NET; enkele voorbeelden:

Maar in praktijk wordt C# dus hoofdzakelijk gebruikt met het .NET Framework.

Notepad++: de ontwikkelomgeving

Dit is het programma waarin we onze code gaan schrijven en uitvoeren. In het volgende deel wordt uitgelegd hoe je het gebruikt. Alvast een screenshot:

Stap voor stap

Een programma is een opeenvolging van instructies die in een bepaalde volgorde worden uitgevoerd. Het hele proces van code tot uitvoering bestaat uit drie grote stappen: coderen—builden—runnen. Grafisch samengevat:

bestanden aanmaken

Maak eerst in verkenner een projectmap aan voor je oefening, b.v. ConsoleHalloWereld. Open de folder dan in Notepad++:

Vervolgens maak je twee bestanden aan in die map (in Verkenner of in Notepad++):

In principe maken de namen van de bestanden en mappen niet uit. Uit conventie houden we ons aan volgende regels:

coderen

Dit is het schrijven van het programma zelf. Screenshot van een eenvoudig C# programma in Notepad++:

builden

Als je klaar bent, ga je naar de volgende stap, het builden. De code wordt door dan in verschillende stappen omgezet naar een .exe bestand met platform-onafhankelijke tussencode, CIL of Common Intermediate Language genoemd, bestaande uit low-level instructies of bytecodes. Voor de geïnteresseerden: je kan de bytecodes zien door de .exe te openen in tools als ILSpy. Enkele aspecten van het build proces:

De basismanier is de oefeningenmap openen in een Commandovenster, en het commando dotnet build gebruiken:

Als er fouten in je programma staan, krijg je de mededeling dat de build mislukt is en een overzicht van de fouten:

Als de build gelukt is, komen er twee mappen bij in je project:

Je mag die bin en obj mappen altijd handmatig verwijderen en opnieuw builden; soms kan je daarmee buildproblemen oplossen.

runnen

De basismanier is het .exe bestand in bin/Debug/net8.0 starten door dubbelklikken in Verkenner:

De .NET Common Language Runtime (CLR) zal tijdens de uitvoering (JIT: just in time) de bytecode vertalen in platform-specifieke machine-instructies. Het programma in actie:

programma onderbreken met Ctrl-C

Om de uitvoering van een programma voortijdig te stoppen, druk in de console Ctrl-C:

Notepad++ macro's

In de portable versie van Notepad++ gebruikt in de lessen zijn twee macro's (scripts) toegevoegd die builden en runnen makkelijker maken:

Je kan dan eenvoudig builden met Ctrl-B en builden/runnen met Ctrl-R.

De macro's werken alleen als het codebestand geopend is in Notepad++!

Soorten fouten

In elke fase van het programma kunnen fouten optreden:

  1. syntax error: je code bevat een fout tegen de vormregels van de programmeertaal, bv. puntkomma of haakje vergeten
  2. build error: je code is correct geschreven, maar tijdens het builden loopt iets fout, bv. een bibliotheek wordt niet gevonden
  3. runtime error: je code compileert netjes, maar tijdens het uitvoeren loopt je programma vast, bv. een onverwachte deling door nul, geheugenfout, bestand wordt niet gevonden enz...
  4. logical error: je programma loopt niet vast, maar doet niet wat je verwacht, bv. de output is verkeerd of een knop werkt niet

Notepad++ weetjes

lettertype veranderen

Het standaard lettertype voor code is Courier New, wat lastig leesbaar is. In Notepad++ kan je dit aanpassen via Settings, Style Configurator:

dark mode

Via Settings, Preferences kan je dark mode inschakelen:

Voor het overige raden we aan niet teveel aan de instellingen te prutsen.

shortcuts

Algemene shortcuts van elke tekst editor:

Nog een paar typische Notepad++ shortcuts die je zou moeten kennen:

Shortcut Betekenis
Ctrl-K, Ctrl-Shift-K Comment, Uncomment geselecteerd blok
Ctrl-H zoeken en vervangen