Dans ce billet de blog, je vais présenter comment vous pouvez gérer les dépendances de votre application ASP.NET Core en utilisant l’éditeur Visual Studio Code.
Les dépendances d’une application sont regroupées dans le fichier .csproj. Il s’agit d’un fichier XML qui est assez simple à comprendre et à éditer. Si vous créez une application ASP.NET Core MVC en utilisant le modèle de base, vous devez avoir un fichier .csproj, avec le contenu suivant :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" /> <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" /> </ItemGroup> </Project> |
Ce fichier contient une section PropertyGroup, qui définit la version de .NET Core que vous ciblez (.NET Core 1.1) :
Code xml : | Sélectionner tout |
1 2 3 | <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> |
La section qui nous intéresse est la section ItemGroup. Dans la suite de cet article, le terme dépendance et package vont renvoyer à la même chose : une bibliothèque.
Description des balises XML pour la gestion des packages
Les dépendances sont regroupées dans la section ItemGroup :
Code xml : | Sélectionner tout |
1 2 | <ItemGroup> </ItemGroup> |
Vous pouvez avoir plusieurs sections ItemGroup dans votre fichier .csproj, pour une meilleure gestion de vos dépendances.
L’ajout d’une dépendance se fait en utilisant la balise PackageReference. Vous devez renseigner les attributs :
- Include qui contient l’identifiant du package. Exemple Blog.Utilitaire.Conversion ;
- Version qui définit la version du package, au format x.y.z. Exemple 2.0.1
Exemple d’utilisation de PackageReference :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 | <PackageReference Include="Blog.Utilitaire.Conversion" Version="2.0.1" /> Une autre option est de renseigner la version dans la balise Version : <PackageReference Include="Blog.Utilitaire.Conversion"> <Version>2.0.1</Version> </PackageReference> |
Pour intégrer un package dans votre application, vous devez donc connaitre son identifiant et son numéro de version. Toutefois, plus de souplesse est offerte dans la définition du numéro de version.
Si vous ne connaissez pas le dernier chiffre pour le numéro de version, vous pouvez le remplacer par « * » (2.0.*). Dans ce cas, la version du package avec le dernier chiffre le plus élevé sera ajoutée à votre projet.
Vous avez également la possibilité de référencer des packages encore en phase beta ou alpha. Pour le faire, à la suite des chiffres, vous devez ajouter -beta* (2.0.1-beta*). L’étoile permet de vous affranchir de la version beta.
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | <ItemGroup> <!-- ... --> <PackageReference Include="Contoso.Utility.UsefulStuff"> <Version>2.0.*</Version> </PackageReference> <PackageReference Include="Contoso.Utility.UsefulStuff"> <Version>2.0.1-beta*</Version> </PackageReference> <!-- ... --> </ItemGroup> |
En fonction de vos besoins, vous aurez recours à d’autres packages dans votre application. Pour faciliter la gestion des dépendances dans les projets .NET, le gestionnaire de packages NuGet est utilisé.
NuGet offre des outils pour la création, la publication et la consommation des packages. Il offre également un dépôt centralisé ou les packages sont téléchargés par défaut pour être inclus dans votre projet.
Vous avez trois options pour ajouter de nouveaux packages :
- éditer le fichier .csproj ;
- utiliser la commande dotnet ;
- utiliser le gestionnaire de packages NuGet pour Visual Studio Code.
Édition du fichier .csproj
Si vous optez pour ce choix, vous devez connaitre l’identifiant du package et son numéro de version. Il vous suffira juste d’ajouter la balise PackageReference en suivant les instructions ci-dessus.
Utilisation de la commande dotnet
La commande dotnet add package en ligne de commande va permettre d’ajouter un package à votre projet. Vous devez vous positionner sur le dossier contenant le fichier .csproj, ensuite utiliser cette commande en renseignant l’identifiant du package.
dotnet add package Blog.Utilitaire.Conversion
Si vous voulez une version précise du package, vous devez ajouter l’argument -v
Code : | Sélectionner tout |
dotnet add package Blog.Utilitaire.Conversion -v 2.0.1
Il s’agit d’une extension non officielle mise en place par un développeur tiers pour faciliter l’ajout et la suppression des packages dans votre application.
Pour utiliser ce dernier, vous devez dans un premier temps installer celui-ci. Pour le faire :
- cliquez dans la barre d’outils sur l’icône Extensions ;
- dans la zone de recherche, saisissez package manager ;
- cliquez ensuite sur installer.
Une fois l’extension installée, rechargez la fenêtre en cliquant sur Recharger. Cliquez ensuite sur Affichage, puis sur Palette de commandes. Saisissez NuGet et sélectionnez NuGet Package Manager : Add Package.
Saisissez ensuite l’identifiant du package. Vous n’avez pas besoin de saisir ce dernier en entier. Dès lors que vous avez saisi les premiers caractères, appuyez sur entrer pour avoir une liste de packages correspondants. Si je saisis par exemple Entityframework, j’aurais la liste suivante :
En sélectionnant le nom du package, vous aurez une autre fenêtre vous proposant de choisir la version :
Une fois cela fait, le package sera ajouté au fichier projet .csproj.
Code : | Sélectionner tout |
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.1"/>
Une fois un package ajouté au fichier .csproj, vous devez restaurer ce dernier. C’est au moment de la restauration que le package sera téléchargé sur le référentiel distant et ajouté à votre projet. La commande pour le faire est :
Code : | Sélectionner tout |
Dotnet restore
Vous pouvez disposer d’un projet qui utilise les fonctionnalités d’un autre projet. Par exemple, si vous disposez du projet Blog.Tests, qui teste les fonctionnalités de Blog.Web, il va de soi que vous devez inclure une référence à Blog.Web dans Blog.Tests.
Pour le faire, vous devez renseigner le chemin vers le fichier .csproj du projet Blog.Web dans l’attribut include.
Code : | Sélectionner tout |
1 2 3 | <ItemGroup> <ProjectReference Include="..\Blog.Web\Blog.Web.csproj" /> </ItemGroup> |
Désormais, vous avez les connaissances de base pour gérer les packages dans votre projet. Bon coding