Créer et exécuter des projets C# avec l’outil .NET CLI
Revenons au dossier C:\csdemo, c’est le dossier parent du répertoire HelloWorld vu lors de la leçon précédente.
Créons un nouveau dossier avec la commande mkdir HelloWorld2. Vous pouvez aussi créer manuellement un dossier via un clic droit ou
Puis utilisez la commande cd HelloWorld2 dans le terminal pour vous déplacer dans ce nouveau dossier
Exécutez la commande ci-dessous pour générer une toute nouvelle application console. console est le nom du modèle natif du .NET CLI dédié à la création de programmes :
dotnet new consoleLangage du code : JavaScript (javascript)
C:\csdemo>mkdir HelloWorld
C:\csdemo>cd HelloWorld
C:\csdemo\HelloWorld>cd ..
C:\csdemo>mkdir HelloWorld2
C:\csdemo>cd HelloWorld2
C:\csdemo\HelloWorld2>dotnet new console
Le modèle « Application console » a été créé avec succès.
Traitement des actions post-création...
Restauration de C:\csdemo\HelloWorld2\HelloWorld2.csproj :
Restauration réussie.Langage du code : JavaScript (javascript)
Remarque : Le .NET CLI propose de nombreux modèles de projets pour concevoir différents types d’applications, comme des sites web ASP.NET, des logiciels de bureau graphiques Windows Forms et bien d’autres.
Une fois le projet généré, ouvrez son dossier pour découvrir son contenu

Vous pouvez également taper la commande dir dans le terminal pour lister tous les fichiers du dossier
Vous verrez que trois fichiers et un dossier supplémentaires sont apparus dans le répertoire
- Fichier de projet :
HelloWorld2.csproj - Fichier source C# :
Program.cs - Dossier :
obj(stocke les paramètres de compilation, le cache et toutes les données nécessaires au fonctionnement du .NET lors de la compilation et de l’exécution)
Ouvrez HelloWorld2.csproj avec le Bloc-notes
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>Langage du code : HTML, XML (xml)

.NET 10 est déjà installé sur mon ordinateur, donc les nouveaux projets ciblent net10.0 par défaut
Ouvrez Program.cs pour voir le code par défaut fourni nativement
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");Langage du code : JavaScript (javascript)
Compilez et lancez le programme en saisissant cette commande
dotnet run

Si l’exécution réussit, le terminal affichera ce texte : Hello World!
Certains lecteurs ayant déjà des bases en développement se posent une question : on nous dit que le point d’entrée d’un programme est la fonction Main, alors pourquoi ne la voit-on pas ici ?
Il s’agit d’une fonctionnalité moderne du .NET appelée instructions de premier niveau (sans Main explicite), un sucre syntaxique des versions récentes de C#. Dans les cas où le code est minimal, le compilateur génère automatiquement un point d’entrée Main caché pour supprimer le code répétitif de modèle
La version complète équivalente du code ci-dessus est celle-ci :
using System;
namespace HelloWorld2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}Langage du code : JavaScript (javascript)

Réexécutez la commande dotnet run

Le code se compile et s’exécute sans aucun problème.
<Project Sdk="Microsoft.NET.Sdk"> : Déclare que le projet utilise le nouveau format de projet SDK du .NET
<OutputType>Exe</OutputType> : Indique que la compilation du projet produit un fichier exécutable (paramètre obligatoire pour les applications console)
<TargetFramework>net10.0</TargetFramework> : Spécifie que le projet fonctionne sur le framework .NET 10.0
// Importe l'espace de noms natif System, où se trouve la classe Console
using System;
// Définit l'espace de noms propre au projet HelloWorld2, afin d'isoler les classes de différents projets et éviter les conflits de noms
namespace HelloWorld2
{
// Classe principale de l'application, nommée Program par défaut dans les modèles console .NET
class Program
{
/// <summary>
/// Unique méthode point d'entrée de tout programme C#, exécutée automatiquement au lancement de l’appli
/// static : Méthode statique, utilisable sans instancier la classe Program
/// void : Aucune valeur de retour ; le programme ne renvoie aucune donnée au système d’exploitation à sa fermeture
/// string[] args : Tableau de chaînes qui récupère les arguments de ligne de commande transmis au lancement du programme
/// </summary>
static void Main(string[] args)
{
// Console.WriteLine() : Méthode d’affichage dans la console
// WriteLine ajoute un saut de ligne automatique après le texte affiché
// "Hello World!" est la chaîne de caractères à imprimer dans la fenêtre du terminal
Console.WriteLine("Hello World!");
}
}
}Langage du code : JavaScript (javascript)

La toute première ligne de code importe l’espace de noms System, ce qui permet d’utiliser directement toutes ses classes dans le fichier Program sans ajouter le préfixe System. Si vous omettez cette importation, vous devrez écrire le nom complet qualifié de chaque classe.
Dans l’appel Console.WriteLine vu plus haut, Console correspond au nom de la classe et WriteLine au nom de la méthode ; reportez-vous à la partie en haut à droite de la capture d’écran ci-dessus pour référence.
Créer des projets avec le .NET CLI