DotNet 5 sur Raspbian

Le futur du .Net sur Raspberry PI

Featured image

DotNet 5 c’est quoi ?

DotNet 5 c’est l’unification de la plateforme .Net avec les API disponible pour Windows / Linux / mcOsX / Android / iOS / TV / Watch / WebAssembly / …

Avant de se lancer dans l’utilisation de raspbian, cet article vous présente l’écosystème dotnet 5 ici.

dotnet5

Installer DotNet 5 sur Raspbian

Comme on peut le voir sur le site de Microsoft, la version ARM de DotNet 5 est déjà disponible, c’est parfait c’est la version nécessaire pour faire tourner sur Raspberry Pi 4 !

Les bases sont :

Une fois le raspberry pi lancer, il suffit de soit se connecter en SSH soit y accédé directement par clavier/souris.

Première étape, récupérer l’archive qui contient le SDK.

Les téléchargements sont disponible à la page suivante DotNet.

Pour un Raspberry Pi 4 c’est la version ARM qui nous intéresse.

download_link

root@raspberrypi:/home/pi# wget https://download.visualstudio.microsoft.com/download/pr/658cb5dd-9a5f-481e-b481-f80a1ed802b3/9ab953320b89d5690a4fcda48b635986/dotnet-sdk-5.0.100-preview.1.20155.7-linux-arm.tar.gz

Ensuite, crée le répertoire pour décompresser DotNet.

root@raspberrypi:/home/pi# sudo mkdir -p /usr/dotnet

Etape suivante, décompresser dans le dossier crée au préalable.

root@raspberrypi:/home/pi# sudo tar zxf dotnet-sdk-5.0.100-preview.1.20155.7-linux-arm.tar.gz -C /usr/dotnet

Deux étapes restantes, sont d’ajouter dans le PATH le chemin vers DotNet. Afin d’avoir les commandes disponibles dès le lancement de Raspbian, modifier le fichier /etc/.bashrc pour ajouter les exports.

Ouvrir le fichier avec nano / vim.

root@raspberrypi:/home/pi# nano /etc/.bashrc

Ajouter les deux lignes suivantes.

export DOTNET_ROOT=/usr/dotnet
export PATH=$PATH:/usr/dotnet

Sauver et quitter.

Afin de tester, lancer la commande dotnet –info.

root@raspberrypi:/usr/dotnet/sdk# dotnet --info

Résultat.

.NET Core SDK (reflecting any global.json):
 Version:   5.0.100-preview.1.20155.7
 Commit:    1c44853056

Runtime Environment:
 OS Name:     raspbian
 OS Version:  10
 OS Platform: Linux
 RID:         linux-arm
 Base Path:   /usr/dotnet/sdk/5.0.100-preview.1.20155.7/

Host (useful for support):
  Version: 5.0.0-preview.1.20120.5
  Commit:  3c523a6a7a

.NET Core SDKs installed:
  5.0.100-preview.1.20155.7 [/usr/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 5.0.0-preview.1.20124.5 [/usr/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.0-preview.1.20120.5 [/usr/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Crée un nouveau projet.

root@raspberrypi:/usr/dotnet/sdk# dotnet new
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      -------------------
Console Application                               console                  [C#], F#, VB      Common/Console
Class library                                     classlib                 [C#], F#, VB      Common/Library
WPF Application                                   wpf                      [C#], VB          Common/WPF
WPF Class library                                 wpflib                   [C#], VB          Common/WPF
WPF Custom Control Library                        wpfcustomcontrollib      [C#], VB          Common/WPF
WPF User Control Library                          wpfusercontrollib        [C#], VB          Common/WPF
Windows Forms (WinForms) Application              winforms                 [C#], VB          Common/WinForms
Windows Forms (WinForms) Class library            winformslib              [C#], VB          Common/WinForms
Worker Service                                    worker                   [C#]              Common/Worker/Web
Unit Test Project                                 mstest                   [C#], F#, VB      Test/MSTest
NUnit 3 Test Project                              nunit                    [C#], F#, VB      Test/NUnit
NUnit 3 Test Item                                 nunit-test               [C#], F#, VB      Test/NUnit
xUnit Test Project                                xunit                    [C#], F#, VB      Test/xUnit
Razor Component                                   razorcomponent           [C#]              Web/ASP.NET
Razor Page                                        page                     [C#]              Web/ASP.NET
MVC ViewImports                                   viewimports              [C#]              Web/ASP.NET
MVC ViewStart                                     viewstart                [C#]              Web/ASP.NET
Blazor Server App                                 blazorserver             [C#]              Web/Blazor
ASP.NET Core Empty                                web                      [C#], F#          Web/Empty
ASP.NET Core Web App (Model-View-Controller)      mvc                      [C#], F#          Web/MVC
ASP.NET Core Web App                              webapp                   [C#]              Web/MVC/Razor Pages
ASP.NET Core with Angular                         angular                  [C#]              Web/MVC/SPA
ASP.NET Core with React.js                        react                    [C#]              Web/MVC/SPA
ASP.NET Core with React.js and Redux              reactredux               [C#]              Web/MVC/SPA
Razor Class Library                               razorclasslib            [C#]              Web/Razor/Library
ASP.NET Core Web API                              webapi                   [C#], F#          Web/WebAPI
ASP.NET Core gRPC Service                         grpc                     [C#]              Web/gRPC
dotnet gitignore file                             gitignore                                  Config
global.json file                                  globaljson                                 Config
NuGet Config                                      nugetconfig                                Config
Dotnet local tool manifest file                   tool-manifest                              Config
Web Config                                        webconfig                                  Config
Solution File                                     sln                                        Solution
Protocol Buffer File                              proto                                      Web/gRPC

Examples:
    dotnet new mvc --auth Individual
    dotnet new web
    dotnet new --help

Voilà, fin de l’article, il est certes court, mais je trouvais important de montrer que même en étant en preview et disponible depuis quelques heures, il est déjà installable et utilisable sur des devices plus spécifiques comme un Raspberry Pi.


MERCI

d'avoir pris le temps de lire cet article