Как мне приступить к разработке и внедрению интерфейса script для моего приложения .NET?
Существует VSTA
(эквивалент .NET VBA
для COM
), но насколько я понимаю, мне пришлось бы заплатить лицензионный сбор за каждую установку моего приложения, Это открытый источник
поэтому это не сработает.
Существует также, например, встраивание интерпретаторов (IronPython?), но я не понимаю, как это позволит подвергать "объектную модель" (см. ниже) внешним (или внутренним) скриптам.
подвопросы:
- Что такое рассказ интерфейса сценариев в .NET? Это как-то тривиально сделать это в .NET?
- например. могут ли некоторые объекты .NET в моем приложении и их содержащиеся объекты объявляться доступными снаружи во время выполнения?
- Как внешние скрипты получают доступ к моему приложению (через объектную модель)?
Фон:
Я как-то разработал и реализовал довольно привлекательный интерфейс script для приложения Macintosh для сбора и анализа данных из масс-спектрометра ( Mac OS, System 7), а затем COM-интерфейс для приложения Windows.
Оба были разработаны с "объектной моделью" и классами (которые могут иметь свойства). Это перегруженные слова, но
в объектной модели контекста интерфейса сценариев, по сути, является сдерживающей хиархией
объекты конкретных классов. Классы имеют свойства, списки содержащихся объектов и являются не только данными, но также могут иметь глаголы (действия/методы). Например. в случае Macintosh определено
объект приложения может содержать объект сбора, который имеет свойства для напряжений, используемых в инструменте, и глагол fireLater
- все, как видно из внешнего script.
Обратите внимание, что в обоих случаях классы/объекты на языке программирования, используемые для реализации приложения, не имеют ничего общего с моделью объектов сценариев. Для случая Macintosh механизмы, используемые для реализации интерфейса сценариев, были определены Apple. Были также некоторые стандарты, определенные Apple о том, как создать объектную модель. Например, стандартизованные имена для некоторых общих свойств в классах.
Или как в интерфейсах COM, открытых в приложениях Microsoft Office, где объект приложения может использоваться для добавления в его список документов (с побочным эффектом создания GUI-представления документа).
Внешние скрипты могут создавать новые объекты в контейнере и перемещаться по содержимому хиархии в любой момент времени. В сценариях Macintosh сценарии могут быть написаны, например. AppleScript или Frontier.
На Macintosh реализация интерфейса сценариев была очень сложной. Поддержка этого в Metroworks 'Библиотека классов С++ (имя ускользает от меня прямо сейчас) сделало ее намного проще.