Catégories
.Net

ASP.Net Core

Éléments

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

VSCode asssistant
assistant VSCode permettant de créer automatiquement les fichiers dans .vscode: launch.json et tasks.json

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