Didacticiel : Créer un modèle de projet

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 tutoriel est le deuxième d’une série qui vous apprend comment créer, installer et désinstaller des modèles à utiliser avec la commande dotnet new.

Conseil

Les modèles .NET officiels fournis avec le SDK .NET se trouvent dans les référentiels suivants :

Modèles Référentiel
Console, bibliothèque de classes et modèles d’élément courants dotnet/sdk
Modèles ASP.NET et Blazor dotnet/aspnetcore
Modèles d’applications à page unique ASP.NET dotnet/spa-templates
Modèles WPF dotnet/wpf
Modèles Windows Forms dotnet/winforms
Tester les modèles dotnet/test-templates
Modèles MAUI dotnet/maui

Vous pouvez afficher les modèles installés sur votre ordinateur en exécutant la commande dotnet new list.

Dans cette partie de la série, vous découvrirez comment :

  • Créer les ressources d’un modèle de projet.
  • 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

  • Complétez la première partie de cette série de tutoriels.
  • Ouvrez un terminal et accédez au dossier working\content.

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 un modèle de projet

Les modèles de projet produisent des projets prêts à être exécutés, qui permettent aux utilisateurs de démarrer facilement avec un jeu de code fonctionnel. .NET comprend quelques modèles de projet, tels qu’une application console ou une bibliothèque de classes. Dans cet exemple, vous allez créer un nouveau projet d’application console qui remplace la sortie standard « Hello World » par une sortie qui s’exécute de manière asynchrone.

Dans votre terminal, accédez au dossier working\templates et créez un sous-dossier nommé consoleasync. Entrez dans le sous-dossier et exécutez dotnet new console pour générer l’application console standard. Vous allez modifier les fichiers générés par ce modèle pour créer un nouveau modèle.

working
└───content
    └───consoleasync
            consoleasync.csproj
            Program.cs

Modifier Program.cs

Ouvrez le fichier Program.cs. Le projet de console standard n’écrit pas de manière asynchrone dans la sortie de la console, alors ajoutons-le. Modifiez le code comme suit et enregistrez le fichier :

// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");

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

Dans ce tutoriel, votre dossier de modèle se trouve dans working\content\consoleasync.

Les modèles sont reconnus par .NET, car ils ont un dossier spécial et un fichier de configuration à la racine de votre dossier de modèle.

Tout d’abord, créez un nouveau sous-dossier nommé .template.config et saisissez-le. Créez ensuite un nouveau fichier nommé template.json. La structure des dossiers doit ressembler à ceci :

working
└───content
    └───consoleasync
        └───.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", "Console" ],
  "identity": "ExampleTemplate.AsyncProject",
  "name": "Example templates: async project",
  "shortName": "consoleasync",
  "sourceName":"ExampleTemplate.AsyncProject",
  "tags": {
    "language": "C#",
    "type": "project"
  }
}

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 définie sur project. Cela catégorise votre modèle en tant que modèle « projet ». 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 sourceName est ce qui est remplacé lorsque l’utilisateur utilise le modèle. La valeur de sourceName dans le fichier de configuration est recherchée dans chaque nom de fichier et contenu de fichier, et par défaut est remplacée par le nom du dossier actif. Lorsque le paramètre -n ou --name est passé avec la commande dotnet new, la valeur fournie est utilisée au lieu du nom du dossier actuel. Dans le cas de ce modèle, consoleasync est remplacé dans le nom du fichier .csproj .

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 du fichier template.json avec la liste des balises classifications. Ce sont deux concepts différents qui portent malheureusement le même nom. Le schéma complet du fichier template.json se trouve dans le magasin de schémas JSON et est décrit dans Référence pour template.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é. Avant d’installer le modèle, veillez à supprimer tous les dossiers et fichiers supplémentaires que vous ne souhaitez pas inclure dans votre modèle, comme les dossiers bin ou obj. Dans votre terminal, accédez au dossier consoleasync et exécutez dotnet new install .\ pour installer le modèle situé dans le dossier actuel. Si vous utilisez un système d’exploitation Linux ou macOS, utilisez une barre oblique : dotnet new install ./.

dotnet new install .\

Cette commande génère un liste des modèles installés, qui doivent inclure le vôtre.

The following template packages will be installed:
   <root path>\working\content\consoleasync

Success: <root path>\working\content\consoleasync installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: async project                  consoleasync             [C#]              Common/Console

Tester le modèle de projet

Maintenant que vous avez un modèle de projet installé, testez-le.

  1. Accédez au dossier de test.

  2. Créez une nouvelle application console avec la commande suivante, générant un projet de travail que vous pouvez facilement tester avec la commande dotnet run.

    dotnet new consoleasync -n MyProject
    

    Vous obtenez la sortie suivante.

    The template "Example templates: async project" was created successfully.
    
  3. Exécutez le projet à l’aide de la commande suivante.

    dotnet run
    

    Vous obtenez la sortie suivante.

    Hello World with C#
    

Félicitations ! Vous avez créé et déployé un modèle de projet avec .NET. En préparation de la prochaine partie de cette série de didacticiels, désinstallez le modèle que vous avez créé. Veillez à supprimer également tous les fichiers du dossier test. Cela vous ramène à un état propre, prêt pour la prochaine partie de cette série de didacticiels.

Désinstaller le modèle

Dans votre terminal, accédez au dossier consoleasync et exécutez la commande suivante pour installer 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\content\consoleasync 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 de projet. Pour savoir comment empaqueter les modèles d’élément et de projet dans un fichier facile à utiliser, poursuivez cette série de tutoriels.