Éléments
- pour développer: .Net Core 3 SDK (la version 3.1 est en LTS)
- pour exécuter une application: .Net Core 3 Runtime (pour le raspberry pi prendre la version ARM32)
- un IDE (optionnel):
- Visual Studio 2019
- Visual Studio Code avec l’extension C#
Historique
- .NET Core 3 (Septembre 2019) Microsoft recommande d’utiliser .Net Core pour tout nouveau projet
- .Net 5 (Novembre 2020) sera le successeur de .Net Core 3 (la version 4 a été skippée pour éviter les confusions avec .Net Framework 4 encore très répandue) actuellement en Preview 6 (Fin Juin 2020)
- .NET Framework 4.8 (Avril 2019) sera la dernière version maintenu du .Net Framework
Créer un nouveau projet
Utiliser Visual Studio 2019 ou le SDK téléchargeable en standalone ou via chocolatey (qui est également installé automatiquement avec Visual Studio 2019).
Utilisation de la commande dotnet
dotnet --info # check le PATH et versions des SDK/Runtime dispo dotnet new --help # liste les templates disponibles dotnet new webapp # cré une solution WebApi dotnet restore # restore les packages Nuget dotnet build # compile le source en binaire, l'assembly .dll dotnet run # effectue un dotnet build puis lance l'application dotnet xxx.dll # exécute l'assembly dotnet run -- mes_args # le -- permet à la commande dotnet de ne pas interpréter mes_args comme un de ses paramètres mais de les transférer au programme exécuté
Création d’éléments de solution
MS nous met à disposition un outil dotnet aspnet-codegenerator
qui est un générateur de code, qui permet de remplacer l’interface de Visual Studio lorsqu’on cré des nouveaux éléments au seins de notre solution.
Injection de dépendances
Dans les principes SOLID (formalisé en 2000), le D correspond à « Dependency Inversion Principle » soit « Principe d’Inversion de Dépendances« .
Ce principe nous demande de découpler les classes des classes qu’elles consomment, en utilisant des Interfaces dans les 2 classes (appelant et appelée) et d’utiliser un IOC Container (Inversion of Control Container ex. Autofac) pour faire de l’Injection de Dépendances.
ASP.NET Core nous fournit l’outillage nécessaire pour cela.
L’intérêt est de permettre de pouvoir remplacer simplement les classes consommés et faciliter les Tests Unitaires.
voir tuto Youtube de Tim Corey à propos du Principe d’inversion des Dépendances et de l’Injection de Dépendances.
Troubleshooting
Pour que Visual Studio 2019 puisse lancer l’exécutable node, en cas d’utilisation de nvm (notamment sur MAC), il faut créer un lien :
ln -s `command -v node` /usr/local/bin/node
Screenshots

Liens
Toujours pour chercher/trouver un package NuGet: nuget.org
Blog post sur le setup pour Raspberry Pi 4
Injection de dépendances en .Net Core pour des Controlleurs MVC, des Vues, au niveau des Services