Язык сценариев для встраивания в приложения С#/.NET?
[только аналогичный вопрос. Я могу найти ответ уже давно и содержит ссылку на основном IronPython. Я также хочу рассмотреть другие варианты.
У нас есть приложение для комплексного анализа данных, написанное на С#. Приложение должно предоставлять пользователям сложные средства настройки своих задач анализа данных. В настоящее время мы используем смесь конфигурационных файлов и таблиц Excel, чтобы указать это, но она становится громоздкой, поэтому мы ищем язык для встраивания скриптов.
Какой лучший простой скриптовый язык для встраивания С#/.NET? Возможно ли каким-то образом внедрить VBA аналогично Excel/Word? Или, возможно, используется JavaScript/Lua?
Излишне говорить, что было бы легко разоблачить некоторые API и объекты из основного приложения во встроенные скрипты.
Ответы
Ответ 1
Я знаю другие вопросительные ссылки IronPython, но я все еще чувствую, что это должно быть здесь, потому что я считаю это одним из лучших вариантов.
Еще один отличный вариант - IronRuby. Основное различие, которое я вижу, было бы, если бы ваши разработчики/пользователи имели опыт работы с Python или Ruby, которые могли бы быть переданы.
Действительно, в конечном итоге ваш лучший вариант - это язык, который наиболее легко адаптируется к пользователям. Если они не согласятся с этим и способны быть более продуктивными, чем они были со старым методом, это не стоит усилий.
Ответ 2
Boo возможно?
Ответ 3
Lua отлично! Lua отлично играет с .NET. Я написал сообщение в блоге о том, как начать внедрение Lua и С#, может стоить проверить:
http://blog.apterainc.com/software/embedding-lua-and-c/
Ответ 4
Я бы посмотрел в XAML только рабочий процесс Windows. Вы можете переопределить конструктор и предоставить настраиваемые действия, которые можно вытащить и использовать для управления данными любым способом. ОЧЕНЬ визуально. В настоящее время я использую это в одном из своих приложений, и пользователи, похоже, любят его. Хотя для него есть небольшая кривая обучения, это намного меньше, чем типичный язык сценариев, и люди, похоже, могут быстро это понять, особенно те, у кого есть опыт использования блок-схем и Visio.
Ответ 5
Я знаю, что вы попросили использовать технологию сценариев, но основная потребность - это управление кодом для не-программистов. Мы используем Правила ILOG для .Net для удовлетворения этой потребности.
Ответ 6
Умм, как насчет С#? Нет причин, по которым вы не можете позволить пользователю писать С#, а затем безопасно загружать его в другой AppDomain со всеми правильными ограничениями и гарантиями.
Ответ 7
Как насчет JScript.NET или PowerShell
Ответ 8
Я думаю, что использование С# через CodeDom - очень мощное решение
Ответ 9
Boo и IronPython были упомянуты, но не забывайте IronScheme, F # или любой из других языков, которые были перенесены на виртуальную машину CIL и имеют компиляцию во время выполнения/интерпретация.
Ответ 10
IronRuby выглядит лучше каждый день.
Ответ 11
Существует много, много, много языков сценариев. Что лучше для вас, зависит от того, что вы пытаетесь сделать.
Вы должны проанализировать задачи, которые должны выполнять ваши пользователи, нотацию, с которой они уже знакомы, и выбрать подходящий для них язык сценариев. Вы не должны выбирать популярный язык сценариев, а затем заставлять приложение и пользователей вписываться в него.
Ответ 12
Я также поставил бы голосование за использование С# для написания ваших расширений. Если у вас нет веских причин, таких как существующая пользовательская база, уже знакомая с python, ruby или boo, приведение на другом языке просто увеличивает сложность и затраты на обучение.