Scriptcs est un petit bijou de technologie que j’utilise occasionnellement depuis ses premiers moments. J’ai démarré l’aventure French Coding depuis avril 2012 et je m’étonne encore de ne pas avoir mis en place un billet au sujet de scriptcs.
Qu’est-ce que scriptcs? Il s’agit d’un utilitaire permettant d’exécuter du C# et de bénéficier de la puissance de .NET sans avoir recours à Visual Studio. Vous pouvez écrire du code directement à partir de votre éditeur texte préféré et l’exécuter à la demande. Génial, n’est-ce pas?
Je me suis souvent servi de scriptcs pour tester certaines conditions d’exécution. Là où je m’en suis servi le plus fréquemment c’est pour de l’affichage de dates, ironiquement. Il est vraiment facile de tester un bout de code de cette façon.
La façon la plus simple (et recommandée par l’équipe de développement) est de passer par Chocolatey en utilisant la commande choco install scriptcs. Si vous ne voulez pas utiliser Chocolatey (il n’y a pas de bonnes raisons de le faire, je vous le dis), il y a des façons alternatives d’installer scriptcs sur votre machine.
Suggestion de lecture: mon billet au sujet de Chocolatey.
Mettre à main à la pâte
Il y a deux façons de travailler avec scriptcs.
- Le mode REPL (Read-Eval-Print-Loop) permet d’interagir avec le compilateur de C# en lui envoyant du code. D’ailleurs, si vous avez déjà fait du Ruby dans votre vie, vous allez remarquer que cette fonctionnalité de scriptcs ressemble à IRB.
- Avec des fichiers de script vous permet d’écrire des classes C# et de les exécuter en ligne de commande. Ce qui est intéressant avec ce mode est l’éventail de possibilités qui vous est offert.
Vous pouvez, par exemple, référencer d’autres scripts (csx) et, notamment, avoir recours à NuGet pour installer des modules pour votre script.
Ensuite, c’est quoi la suite?
Après tout cela, qu’est-ce qui vous reste à voir? Ma seule recommandation serait d’aller jeter un coup d’oeil à la liste des exemples de scripts laissés par l’équipe de développement de scriptcs.
Au pire, les exemples risquent de certainement vous donner des idées. Les bouts de codes vont de RavenDB à créer un client/serveur utilisant System.Net.
Bonjour,
C’est vrai qu’il est intéressant de pouvoir scripter du C#, mais qu’est ce que ça fait de plus que Powershell ? c’est surtout une syntaxe qu’on à plus l’habitude :)
Sinon est ce possible de ce connecter à un process déjà en cours ? un peu à la façon du debug de Visual Studio (s’attacher au process) .
Je dirais que la principale différence entre scripter du C# et Powershell à cet égard reste le fait que le script C# est compilé et Powershell.
Sans oublier que Powershell est supporté nativement sur toutes les plateformes Windows. Powershell reste encore un outil de choix pour faire des manipulations et transformations sur une marchine.
Tandis que scriptcs permet d’exécuter du code C# dans un contexte isolé et en dehors de l’environnement de développement habituel (Visual Studio).
À mon avis, les deux outils sont complémentaires. Ils servent des besoins différents, je crois bien.