Comment puis-je commencer à concevoir et à mettre en œuvre une interface script pour mon application .NET ?
Il y a VSTA
(l'équivalent .NET de VBA
pour COM
), mais d'après ce que j'ai compris, je devrais payer une licence pour chaque installation de mon application. Il s'agit d'une application open source donc cela ne fonctionnera pas.
Il y a aussi, par exemple, l'intégration d'interprètes (IronPython ?), mais je ne comprends pas comment cela pourrait permettre d'exposer un "modèle objet" (voir ci-dessous) à des scripts externes (ou internes).
Sous-questions :
- Quelle est l'histoire de l'interface de script dans .NET ? Est-il trivial de faire cela en .NET ?
- Par exemple, certains objets .NET de mon application et les objets qu'ils contiennent peuvent-ils être déclarés accessibles de l'extérieur au moment de l'exécution ?
- Comment externe Les scripts accèdent à mon application (via le modèle objet) ?
Le contexte :
J'ai déjà conçu et mis en œuvre une interface script assez complexe pour une application Macintosh d'acquisition et d'analyse de données provenant de un spectromètre de masse (Mac OS, Système 7 ) et plus tard une interface COM pour une application Windows.
Tous deux ont été conçus avec un "modèle objet" et des classes (qui peuvent avoir des propriétés). Ce sont des mots surchargés, mais dans le contexte d'une interface de script, le modèle objet est essentiellement une hiérarchie de confinement d'objets de classes spécifiques. Les classes ont des propriétés, des listes d'objets contenus et ne sont pas seulement des données mais peuvent aussi avoir des verbes (actions/méthodes). Par exemple, dans le cas du Macintosh, l'objet d'application défini peut contenir un objet d'acquisition qui a des propriétés pour les tensions utilisées dans l'instrument et un objet d'acquisition de données. fireLater
verbe - tout cela vu depuis le script externe.
Notez que dans les deux cas, les classes/objets du langage de programmation utilisé pour mettre en œuvre l'application n'ont rien à voir avec le modèle objet de script. Dans le cas du Macintosh, les mécanismes utilisés pour mettre en œuvre l'interface de script ont été définis par Apple. Apple a également défini certaines normes sur la façon de concevoir le modèle objet. Par exemple, des noms standardisés pour certaines propriétés communes dans les classes.
Ou comme dans les interfaces COM exposées dans les applications Microsoft Office, où l'objet application peut être utilisé pour ajouter à sa liste de documents (avec l'effet secondaire de créer la représentation GUI d'un document).
Les scripts externes peuvent créer de nouveaux objets dans un conteneur et naviguer dans le contenu de la hiérarchie à tout moment. Dans le cas du Macintosh, les scripts peuvent être écrits, par exemple, dans le format AppleScript ou Frontière .
Sur le Macintosh, la mise en œuvre d'une interface de script était très compliquée. Le support de cette interface dans Metroworks Une bibliothèque de classes C++ (dont le nom m'échappe pour l'instant) a rendu les choses beaucoup plus simples.