Scripting C# et exécution de fichiers dans .NET 10: Une analyse approfondie avec Tim Corey
C# a traditionnellement été un langage compilé, nécessitant un projet, une solution et un ensemble Visual Studio pour exécuter même les programmes les plus simples. Avec .NET 10, cependant, les choses ont radicalement changé. Tim Corey, dans sa vidéo sur le script C# et l'exécution de fichiers, démontre comment les développeurs peuvent maintenant traiter C# comme un langage de script, en exécutant des fichiers de script directement sans créer un projet complet. Cette nouvelle capacité permet aux programmeurs d'écrire du code de script dans un seul fichier cs, de l'exécuter depuis l'invite de commande et d'expérimenter rapidement avec du nouveau code.
Dans cet article, nous explorerons ces fonctionnalités en détail, suivant les conseils de Tim pour comprendre le flux de travail, l'utilisation de la ligne de commande et les capacités avancées de l'exécution de fichiers C#.
Introduction to C# Scripting in .NET 10
Tim commence la vidéo en soulignant que le scripting C# dans .NET 10 permet à un seul fichier cs d'agir comme une application complète. Contrairement aux projets Visual Studio traditionnels, il n'est pas nécessaire de déclarer des classes publiques, un Program.cs ou un fichier solution. Vous pouvez maintenant écrire un script, l'enregistrer en tant que demo.cs, et l'exécuter immédiatement.
Cette approche est similaire au scripting en Python ou en JavaScript, où un seul fichier peut effectuer des tâches sans créer un projet. Tim souligne que ce n'est pas seulement une question de commodité, c'est la capacité de faire tourner rapidement des tâches, de tester des instructions et d'expérimenter avec des objets ou des données.
Créer votre premier fichier de script
Tim démontre la création d'un fichier cs simple appelé FileDemo.cs dans Visual Studio Code. Le code suivant sert d'exemple classique de "hello world" :
Console.WriteLine("Hello World");
Exécuter le fichier est aussi simple que d'ouvrir l'invite de commande et d'exécuter :
dotnet run FileDemo.cs
La sortie affiche Hello World instantanément, montrant que même l'exécution en temps réel d'un seul fichier est entièrement prise en charge. Tim note que cette approche est idéale pour les tests de nouveau code, les petits scripts ou les situations où le poids d'un projet complet est inutile.
Gestion des entrées et arguments de ligne de commande
Tim démontre ensuite la capacité d'accepter les arguments de la ligne de commande dans un code de script. En modifiant l'exemple hello world, vous pouvez passer une valeur directement au fichier de script :
Console.WriteLine($"Hello {args[0]}");
Lorsque vous exécutez dotnet run demo.cs Tim, la sortie devient Hello Tim. Tim souligne que le tableau args fonctionne exactement comme dans une application console traditionnelle, montrant que les scripts basés sur des fichiers sont de véritables applications C# avec toutes les capacités du langage.
Simplification de la syntaxe et usings implicites
Tim explique que .NET 10 prend en charge les directives using implicites, ce qui signifie que vous pouvez accéder aux espaces de noms System sans écrire explicitement using System;. Cela réduit la syntaxe standardisée et permet au premier objet ou méthode dans votre script d'être exécuté immédiatement.
Cette simplification s'étend aux extensions de fichier csx et aux flux de travail de fenêtre interactive dans Visual Studio Code, où les développeurs peuvent tester le code de script ligne par ligne en utilisant des fenêtres REPL ou la fenêtre interactive, similaire au scripting Python.
Entrée utilisateur interactive
Ensuite, Tim montre comment rendre les scripts interactifs en lisant les entrées de l'utilisateur :
Console.Write("Quel est votre nom ? ");
string name = Console.ReadLine();
Console.WriteLine($"Hello {name}");
Ici, le premier objet de l'interaction est la chaîne name, qui peut être accédée et affichée immédiatement. Tim note que des avertissements de nullabilité peuvent apparaître mais peuvent être traités correctement. Cette capacité à lire l'entrée et à afficher la sortie rend les fichiers de script polyvalents et pratiques pour des tâches au-delà du simple code de démonstration.
Utilisation des packages NuGet dans les scripts
Pour étendre les capacités d'exécution d'un fichier de script, Tim présente les packages NuGet. Par exemple, en utilisant Spectre.Console, vous pouvez formater la sortie avec des couleurs :
#r "nuget: Spectre.Console, 0.54.0"
using Spectre.Console;
AnsiConsole.MarkupLine("[red]Bonjour Tim[/]");
Tim explique qu'ajouter des références via des packages NuGet dans un code de script permet aux développeurs de tirer parti des assemblées externes sans un projet complet. Il démontre l'exécution du script et voir la console afficher le nom de l'utilisateur en rouge, montrant comment les scripts basés sur des fichiers peuvent être aussi puissants que des projets complets.
Publication de scripts sous forme d'exécutables
Tim évoque également la création d'exécutables à partir de fichiers cs. En exécutant :
dotnet publish Filedemo.cs
vous pouvez générer un DLL ou EXE pour Windows, Linux ou Mac, rendant le fichier de script portable. Il souligne que ces exécutables sont Native AOT, offrant une performance d'exécution maximale. Si nécessaire, la propriété AOT peut être désactivée en utilisant une directive de propriété en haut du fichier.
Cela démontre la capacité du scripting .NET 10 à produire des fichiers prêts à la production tout en gardant la syntaxe simple.
Conversion de scripts en projets complets
Pour des applications plus complexes nécessitant plusieurs classes, méthodes ou objets, Tim montre comment convertir un fichier script en un projet complet :
dotnet project convert FileDemo.cs
Cette commande crée un nouveau dossier contenant un fichier projet CS, préservant les références aux packages NuGet, les paramètres nullable, et les usings implicites. Le code suivant du script original est retenu, ce qui facilite son intégration dans une solution Visual Studio ou son exécution en tant que projet autonome.
Principaux avantages des scripts basés sur des fichiers
Tim souligne plusieurs avantages des scripts C# et de l'exécution de fichiers :
-
Vitesse – Exécutez immédiatement du nouveau code à partir des fichiers script.
-
Portabilité – Publiez des scripts sous forme d'exécutables pour Windows, Linux ou macOS.
-
Puissance – Les scripts peuvent utiliser des packages NuGet, accéder aux données et gérer les saisies utilisateur.
-
Flexibilité – Promouvez les fichiers cs en projets complets avec un minimum d'effort.
- Réduction des frais généraux – Aucun besoin de déclarations de solution, projet, ou classe pour des tâches simples.
Tim note que bien que les scripts basés sur des fichiers ne soient pas adaptés à tous les scénarios, ils sont parfaits pour les tests, les démonstrations, et les tâches de console rapides.
Conclusion
La vidéo de Tim Corey illustre que le scripting C# dans .NET 10 est un outil puissant et flexible pour les développeurs. Les fichiers script permettent l'exécution immédiate de nouveau code, la gestion des saisies utilisateur, l'interaction avec des objets, et l'utilisation de packages NuGet. Les scripts peuvent être exécutés à partir de l'invite de commandes, exécutés dans Visual Studio Code, ou publiés sous forme de DLLs ou d'EXEs pour un usage multiplateforme.
La capacité de convertir du code script en un projet complet offre le meilleur des deux mondes : la simplicité d'un fichier script avec l'extensibilité d'un projet traditionnel Visual Studio. Tim encourage les développeurs à écrire, tester, et modifier librement le code script, faisant du scripting C# un outil précieux pour le développement rapide et l'expérimentation.
Comme le résume Tim, cette méthode est idéale pour les petits projets, les applications console, et les tâches de traitement de données, offrant un workflow moderne et efficace qui complète le développement C# traditionnel.
