Tutoriel : Créer un modèle d’élément
Avec .NET, vous pouvez créer et déployer des modèles qui génèrent des projets, des fichiers et même des ressources. Ce didacticiel est le premier d’une série qui vous apprend comment créer, installer et désinstaller des modèles à utiliser avec la commande dotnet new
.
Vous pouvez consulter le modèle terminé dans le référentiel d’échantillons GitHub .NET.
Dans cette partie de la série, vous découvrirez comment :
- Créer une classe pour un modèle d’élément
- Créer le dossier et le fichier de configuration du modèle
- Installer un modèle à partir d’un chemin de fichier
- Tester un modèle d’élément
- Désinstaller un modèle d'élément
Prérequis
Sdk .NET 7.0.100 ou version ultérieure.
Lisez l’article de référence Modèles personnalisés pour dotnet new.
L’article de référence explique les notions de base sur les modèles et la façon dont ils sont créés. Certaines de ces informations seront répétées ici.
Ouvrez un terminal et accédez au dossier working\templates.
Important
Cet article est écrit pour .NET 7. Cependant, il s’applique aussi à .NET 6 et aux versions antérieures, à une différence près : la syntaxe de dotnet new
est différente. Les sous-commandes list
, search
, install
et uninstall
doivent être les options --list
, --search
, --install
et --uninstall
, respectivement.
Par exemple, la commande dotnet new install
dans .NET 7 devient dotnet new --install
dans .NET 6. Utilisez la commande dotnet new --help
pour afficher la liste de toutes les options et sous-commandes.
Créer les dossiers requis
Cette série utilise un « dossier de travail » dans lequel se trouve votre source de modèle et un « dossier de test » utilisé pour tester vos modèles. Le dossier de travail et le dossier de test doivent se trouver sous le même dossier parent.
Tout d’abord, créez le dossier parent, le nom n’a pas d’importance. Puis, créez un sous-dossier nommé working. Dans le dossier working, créez un sous-dossier nommé templates.
Ensuite, créez un dossier sous le dossier parent nommé test. La structure des dossiers doit ressembler à ce qui suit.
parent_folder
├───test
└───working
└───templates
Créer un modèle d’élément
Un modèle d’élément est un type spécifique de modèle qui contient un ou plusieurs fichiers. Ces types de modèles sont utiles lorsque vous souhaitez générer un fichier de configuration, de code ou de solution. Dans cet exemple, vous allez créer une classe qui ajoute une méthode d’extension au type de chaîne.
Dans votre terminal, accédez au dossier working\templates et créez un sous-dossier nommé extensions. Entrez dans le dossier.
working
└───templates
└───extensions
Créez un nouveau fichier nommé CommonExtensions.cs et ouvrez-le avec votre éditeur de texte favori. Cette classe fournit une méthode d’extension nommée Reverse
qui inverse le contenu d’une chaîne. Collez le code suivant et enregistrez le fichier :
using System;
namespace System
{
public static class StringExtensions
{
public static string Reverse(this string value)
{
var tempArray = value.ToCharArray();
Array.Reverse(tempArray);
return new string(tempArray);
}
}
}
Maintenant que le contenu du modèle est créé, vous devez créer la configuration du modèle dans le dossier racine du modèle.
Créer la configuration du modèle
Les modèles sont reconnus par un dossier et un fichier de configuration spécifiques qui se trouvent à la racine de votre modèle. Dans ce tutoriel, votre dossier de modèle se trouve dans working\templates\extensions.
Lorsque vous créez un modèle, tous les fichiers et dossiers du dossier de modèle sont inclus dans le modèle, à l’exception du dossier de configuration spécial. Ce dossier de configuration est nommé .template.config.
Tout d’abord, créez un sous-dossier nommé .template.config et accédez-y. Créez ensuite un nouveau fichier nommé template.json. La structure des dossiers doit ressembler à ceci :
working
└───templates
└───extensions
└───.template.config
template.json
Ouvrez le fichier template.json avec votre éditeur de texte favori, puis collez le code JSON suivant et enregistrez-le.
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Common", "Code" ],
"identity": "ExampleTemplate.StringExtensions",
"name": "Example templates: string extensions",
"shortName": "stringext",
"tags": {
"language": "C#",
"type": "item"
}
}
Ce fichier de configuration contient tous les paramètres de votre modèle. Vous pouvez voir les paramètres de base, tels que name
et shortName
, mais il existe également une valeur tags/type
qui est définie sur item
. Cela classe votre modèle en tant que modèle d’élément. Il n’existe aucune restriction sur le type de modèle que vous créez. Les valeurs item
et project
sont des noms courants que .NET recommande afin que les utilisateurs puissent facilement filtrer le type de modèle qu’ils recherchent.
L’élément classifications
représente la colonne tags que vous voyez lorsque vous exécutez dotnet new
et obtenez une liste de modèles. Les utilisateurs peuvent également effectuer une recherche sur les balises de classification. Ne confondez pas la propriété tags
dans le fichier *.json avec la liste de balises classifications
. Il s’agit de deux choses différentes, qui ont malheureusement le même nom. Le schéma complet pour le fichier template.json se trouve dans le magasin de schémas JSON. Pour plus d’informations sur le fichier template.json, consultez le Wiki de création de modèles dotnet.
Maintenant que vous avez un fichier .template.config/template.json valide, votre modèle est prêt à être installé. Dans votre terminal, accédez au dossier extensions et exécutez la commande suivante pour installer le modèle situé dans le dossier actuel :
- Sous Windows :
dotnet new install .\
- Sous Linux ou macOS :
dotnet new install ./
Cette commande génère la liste des modèles installés, qui doivent inclure le vôtre.
The following template packages will be installed:
<root path>\working\templates\extensions
Success: <root path>\working\templates\extensions installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: string extensions stringext [C#] Common/Code
Tester le modèle d’élément
Maintenant que vous avez un modèle d’élément installé, testez-le. Accédez au dossier test/ et créez une application console avec dotnet new console
. Cela génère un projet fonctionnel que vous pouvez facilement tester à l’aide de la commande dotnet run
.
dotnet new console
La sortie obtenue doit ressembler à ce qui suit.
The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on C:\test\test.csproj...
Restore completed in 54.82 ms for C:\test\test.csproj.
Restore succeeded.
Exécutez le projet avec.
dotnet run
Vous obtenez la sortie suivante.
Hello World!
Ensuite, exécutez dotnet new stringext
pour générer CommonExtensions.cs à partir du modèle.
dotnet new stringext
Vous obtenez la sortie suivante.
The template "Example templates: string extensions" was created successfully.
Modifiez le code dans Program.cs pour inverser la chaîne "Hello World"
avec la méthode d’extension fournie par le modèle.
Console.WriteLine("Hello World!".Reverse());
Réexécutez le programme et vous verrez que le résultat est inversé.
dotnet run
Vous obtenez la sortie suivante.
!dlroW olleH
Félicitations ! Vous avez créé et déployé un modèle d’élément avec .NET. Pour préparer la partie suivante de cette série de tutoriels, vous devez désinstaller le modèle que vous avez créé. Veillez à supprimer également tous les fichiers du dossier test. Vous revenez à un nouvel état prêt pour la section principale suivante de ce tutoriel.
Désinstaller le modèle
Dans votre terminal, accédez au dossier extensions et exécutez la commande suivante pour désinstaller le modèle situé dans le dossier actuel :
- Sous Windows :
dotnet new uninstall .\
- Sous Linux ou macOS :
dotnet new uninstall ./
Cette commande génère une liste des modèles qui ont été désinstallés, qui devrait inclure le vôtre.
Success: <root path>\working\templates\extensions was uninstalled.
Vous pouvez utiliser dotnet new uninstall
à tout moment, afin d’afficher la liste des packages de modèles installés, y compris pour chaque package de modèle, la commande permettant de le désinstaller.
Étapes suivantes
Dans ce tutoriel, vous avez créé un modèle d’élément. Pour savoir comment créer un modèle de projet, poursuivez cette série de tutoriels.