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
Vous avez lu gratuitement 3 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

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