IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre à gérer des dépendances dans un projet ASP.NET Core avec Visual Studio Code
Par Hinault Romaric

Le , par Hinault Romaric

0PARTAGES

ASP.NET Core est bâti autour de la modularité. Cette approche permet d’intégrer à une application uniquement les bibliothèques nécessaires à son fonctionnement. Ces bibliothèques sont couramment appelées des dépendances, car votre application est liée à celle-ci.


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
Utilisation du gestionnaire de package pour Visual Studio Code

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"/>
Restauration des packages

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
Ajout d’une référence vers un autre projet

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>
Pour une meilleure gestion de vos packages, vous devez mettre les références vers les projets dans leur propre section ItemGroup.

Désormais, vous avez les connaissances de base pour gérer les packages dans votre projet. Bon coding

Une erreur dans cette actualité ? Signalez-nous-la !