Raspberry Pi: .NET Apps entwickeln und ausführen

Seit kurzem befasse ich mich wieder intensiver mit dem Raspberry Pi. Dabei handelt es sich um einen Einplatinencomputer, welcher für wenig Geld zur Verfügung gestellt wird. Die erste Version wurde bereits Anfang 2012 veröffentlicht und seitdem wurden mehr als 45 Millionen Geräte verkauft. In diesem Beitrag möchte ich kurz darauf eingehen, wie man .NET Apps auf dem Raspberry Pi entwickeln und auch ausführen kann.

Ich persönlich habe hier noch ein Raspberry Pi 3 Model B, aber es funktioniert auch mit anderen Modellen. Zunächst nutze ich den Raspberry Pi Imager, welchen ich auch schon hier im Blog vorgestellt habe, um die SD-Karte mit dem neusten Raspbian-Betriebssystem einzurichten.

Ich habe mich für die 64-Bit Variante entschieden und nutze das Tool, um die Micro-SD Karte entsprechend zu präparieren. Dieser Vorgang nimmt (je nach Internetgeschwindigkeit) nur ein paar Minuten in Anspruch. Anschließend kann man die SD-Karte in den Raspberry Pi stecken und diesen mit einem Netzteil verbinden. Nun noch ein HDMI-Kabel, Maus und Tastatur anschließend und den Einrichtungsassistenten durchlaufen.

Da wir später unseren Raspberry Pi ohne Display betreiben wollen, müssen wir SSH aktivieren. Dazu öffnen wir einen Terminal und geben den Befehl sudo raspi-config ein. In dem Tool navigieren wir nun auf die Option 3 – Interface Options und bestätigen mit Return. Anschließend suchen wir den Punkt SSH und bestätigen auch hier mit Return.

Anschließend werden wir gefragt, ob wir SSH aktivieren wollen. Diese Frage beantworten wir mit Ja bzw. Yes.

Damit ist SSH aktiviert. Damit der Raspberry Pi stets die gleiche IP-Adresse zugewiesen bekommt, sollten wir die IP-Adresse noch statisch vergeben. Dazu öffnen wir wieder einen Terminal und geben den Befehl sudo nano /etc/dhpcd.conf ein.

In dieser Datei können wir nun eine statische IP-Adresse sowohl für das WLAN als auch für das Ethernet definieren. Der Eintrag hat dabei folgende Struktur:

interface eth0 # eth0 für Ethernet bzw. wlan0 für WLAN
static ip_address=192.168.0.4/24 # Die statische IP-Adresse
static routers=192.168.0.1 # Das Gateway
static domain_name_servers=192.168.0.1 # Der DNS Server

Damit sind die Einrichtungen am Raspberry Pi soweit abgeschlossen und wir können den Raspberry Pi entweder im Terminal über sudo reboot oder über die Oberfläche neustarten, so dass alle Änderungen angewendet werden.

Die einfachste Variante um sich nun per SSH auf dem Raspberry Pi zu verbinden und mit der .NET Entwicklung zu beginnen, ist Visual Studio Code. Hier wechseln wir auf den Extensions-Tab und suchen nach der Extension Remote – SSH von Microsoft. Diese Extension müssen wir installieren.

Anschließend öffnen wir durch Drücken von F1 die Kommando-Palette und wir suchen nach Remote. Aus der Liste der Vorschläge wählen wir den Eintrag Remote-SSH: Connect to Host… aus.

Anschließend wählen wir den Eintrag Neuen SSH-Host hinzufügen aus.

Im nächsten Schritt geben wir den SSH-Befehl ein. Dazu verwenden wir ssh <benutzername>@<ip-adresse> und bestätigen mit Return.

Anschließend erhalten wir im rechten unteren Bereich den Hinweis, dass der Host hinzugefügt wurde und wir können uns nun mit diesem verbinden. Dazu klicken wir auf den Button Verbinden.

Und wird nun der Fingerabdruck vom Gerät angezeigt und wir können diesen per Auswahl von Weiter bestätigen.

Anschließend müssen wir das Passwort für den Nutzer eingeben.

Sobald die Verbindung hergestellt wurde, sieht man das in der linken unteren Ecke, denn hier wir die SSH-Verbindung angezeigt.

Durch das Drücken von strg + Ö können wir nun einen Terminal öffnen und können so Befehle auf dem Raspberry Pi ausführen.

Zunächst wollen wir das Betriebssystem auf den aktuellen Stand bringen. Dazu nutzen wir die Befehle sudo apt-get update und sudo apt-get upgrade.

Es wird darauf hingewiesen, dass Pakete installiert sind, welche nicht mehr benötigt werden. Diese lassen sich per sudo apt autoremove entfernen.

Nun müssen wir natürlich noch .NET installieren, so dass wir mit der Entwicklung auf unserem Raspberry Pi beginnen können. Hierfür stellt Microsoft ein kleines Skript bereit, welches wir per curl herunterladen und dann ausführen.

curl -sSL https://dot.net/v1/dotnet-install.sh | 
  bash /dev/stdin --channel Current

Die Installation nimmt ein paar Minuten in Anspruch und wird am Ende entsprechend bestätigt.

Wir passen nun noch die $PATH-Variable an, so dass der dotnet-Befehl immer zur Verfügung steht.

echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc

Wir können die Installation durch die Eingabe von dotnet --version im Terminal überprüfen, denn es sollte uns die aktuelle .NET Version ausgegeben werden.

Wir wollen uns ein neuen Ordner anlegen und darin eine neue Konsolenapplikation mit dem Namen HelloWorld. Dafür nutzen wir den dotnet-Befehl.

mkdir Development
cd Development/
dotnet new console --name HelloWorld

Anschließend wechseln wir mit dem cd-Befehl in den neuen Ordner HelloWorld und rufen dotnet run auf, was die eigentliche Applikation baut und ausführt. Das Ergebnis wird uns im Terminal ausgegeben.

Nun wollen wir in Visual Studio den Ordner öffnen, so dass wir Anpassungen am Code vornehmen können.

Wir passen den String im Console.WriteLine an und lassen das Programm über dotnet run bauen und ausführen. Das Ergebnis sehen wir auf der Konsole.

Damit sind wir nun in der Lage einfache .NET Applikationen auf dem Raspberry Pi zu entwickeln und auszuführen.

Raspberry Pi 400 einrichten Windows 10 IoT Core auf einem Raspberry Pi Mit dotnet outdated automatisch NuGet Pakete aktualisieren