Nous écrivons une application de bureau complexe et riche et devons offrir une flexibilité dans les formats de rapport, nous avons donc pensé que nous allions simplement exposer notre modèle objet à un langage de script. C'était à l'époque où cela signifiait VBA (qui est toujours une option), mais le dérivé de code géré VSTA (je pense) semble s'être fané sur la vigne.
Quel est maintenant le meilleur choix pour un langage de script intégré sur Windows .NET?
Réponses:
J'ai utilisé CSScript avec des résultats étonnants. Cela évite vraiment d'avoir à faire des liaisons et d'autres éléments de bas niveau dans mes applications scriptables.
la source
Personnellement, j'utiliserais C # comme langage de script. Le framework .NET (et Mono, merci Matthew Scharley) inclut en fait les compilateurs pour chacun des langages .NET dans le framework lui-même.
Fondamentalement, il y a 2 parties à la mise en œuvre de ce système.
Permettre à l'utilisateur de compiler le code Ceci est relativement facile, et peut être fait en seulement quelques lignes de code (bien que vous souhaitiez peut-être ajouter une boîte de dialogue d'erreur, ce qui représenterait probablement quelques dizaines de lignes de code supplémentaires, selon la manière dont vous le voulez).
Créer et utiliser des classes contenues dans l'assembly compilé C'est un peu plus difficile que l'étape précédente (nécessite un peu de réflexion). Fondamentalement, vous devez simplement traiter l'assembly compilé comme un "plug-in" pour le programme. Il existe de nombreux didacticiels sur différentes façons de créer un système de plug-in en C # (Google est votre ami).
J'ai implémenté une application "rapide" pour montrer comment vous pouvez implémenter ce système (comprend 2 scripts de travail!). Ceci est le code complet de l'application, il suffit d'en créer un nouveau et de coller le code dans le fichier "program.cs". À ce stade, je dois m'excuser pour le gros morceau de code que je suis sur le point de coller (je n'avais pas l'intention qu'il soit si grand, mais je me suis un peu emporté avec mes commentaires)
la source
csscript.net
on dirait que c'est une sorte de wrapper dessus. Il s'agit essentiellement d'une implémentation simple. Je pense qu'une meilleure question serait "qu'est-ce que csscript.net fait pour moi et que ce n'est pas le cas". Je ne sais pas ce que fait csscript, mais ils savent certainement ce que fait le code ci-dessus ici, ils l'ont (ou quelque chose d'extrêmement similaire) dans leur bibliothèque.IronPython . Voici un aperçu de la façon de l'intégrer .
la source
Le moteur PowerShell a été conçu pour être facilement intégré dans une application afin de la rendre scriptable. En fait, l'interface de ligne de commande PowerShell est simplement une interface textuelle vers le moteur.
Edit: Voir https://devblogs.microsoft.com/powershell/making-applications-scriptable-via-powershell/
la source
Langue boo .
la source
Mon langage de script de choix serait Lua ces jours-ci. Il est petit, rapide, propre, entièrement documenté, bien pris en charge, a une grande communauté , il est utilisé par de nombreuses grandes entreprises du secteur (Adobe, Blizzard, EA Games), ça vaut vraiment le coup d'essayer.
Pour l'utiliser avec les langages .NET, le projet LuaInterface vous fournira tout ce dont vous avez besoin.
la source
Pourquoi ne pas essayer C #? Mono a un nouveau projet génial, spécialement pour évaluer dynamiquement C #:
http://tirania.org/blog/archive/2008/Sep-10.html
la source
IronRuby comme mentionné ci-dessus. Un projet intéressant pour moi en tant que programmeur C # est le support C # Eval en Mono . Mais il n'est pas encore disponible (fera partie de Mono 2.2).
la source
Un autre vote pour IronPython. L'intégrer est simple, l'interopérabilité avec les classes .Net est simple et, eh bien, c'est Python.
la source
Je peux suggérer S # que je maintiens actuellement. Il s'agit d'un projet open source, écrit en C # et conçu pour les applications .NET.
Initialement (2007-2009), il était hébergé sur http://www.codeplex.com/scriptdotnet , mais récemment il a été déplacé vers github.
la source
Essayez Ela . Il s'agit d'un langage fonctionnel similaire à Haskell et peut être intégré à n'importe quelle application .Net. Même il a un IDE simple mais utilisable.
la source
Je n'ai pas encore essayé mais ça a l'air plutôt cool:
http://www.codeplex.com/scriptdotnet
la source
Je viens de créer un plugin pour un client, lui permettant d'écrire du code C # dans des modules qui agissent comme VBA le fait pour Office.
la source
J'ai déjà utilisé Lua ; dans une application Delphi, mais il peut être intégré dans de nombreuses choses. Il est utilisé dans Photoshop Lightroom d'Adobe .
la source
J'aime les scripts avec C # lui-même . Maintenant, en 2013, il existe un assez bon support pour les scripts C #, de plus en plus de bibliothèques sont disponibles.
Mono prend en charge le script de code C # et vous pouvez l'utiliser avec .NET en incluant simplement le
Mono.CSharp.dll
dans votre application. Pour l'application de script C # que j'ai créée, consultez CShellConsultez également le `ScriptEngine 'dans Roslyn qui est de Microsoft, mais ce n'est que CTP.
Comme certains l'ont déjà mentionné, CS-Script existe également depuis un certain temps.
la source