用于嵌入C#/ .NET应用程序的脚本语言?

[我能找到的唯一类似的问题很久以前就被回答了,并且主要提到了IronPython。 我想考虑其他选项]

我们有一个用C#编写的复杂数据分析应用程序。 应用程序应为用户提供定制数据分析任务的复杂方法。 目前,我们使用配置文件和Excel表的混合来指定它,但它变得笨拙,所以我们正在寻找嵌入的脚本语言。

什么是C#/ .NET嵌入最好的简单脚本语言? 是否有可能以某种方式嵌入VBA类似于Excel / Word? 或者是使用JavaScript / Lua?

不用说,将主应用程序中的一些API和对象暴露给嵌入式脚本应该很容易。

我知道另一个问题引用了IronPython ,但我仍然觉得它应该在这里因为我认为它是最好的选择之一。

另一个很好的选择是IronRuby 。 我看到的主要区别是,如果您的开发人员/用户有任何可以转移的Python或Ruby经验。

实际上,最终您最好的选择是成为用户最容易适应的语言。 除非他们接受它并且能够比旧方法更有效率,否则不值得努力。

或许嘘 ?

Lua很棒! Lua对.NET非常好玩。 我写了一篇关于如何开始嵌入Lua和C#的博客文章,可能值得一试:

http://blog.apterainc.com/software/embedding-lua-and-c/

我会只研究XAML的Windows工作流程。 您可以重新托管设计器,并提供可以拖出并用于以他们喜欢的任何方式操作数据的自定义活动。 非常直观。 我目前正在我的一个应用程序中使用它,用户似乎喜欢它。 虽然它有一个小的学习曲线,它远远低于典型的脚本语言,人们似乎能够相当快地掌握它,特别是那些有使用流程图和Visio经验的人。

我知道您要求使用脚本技术,但潜在的需求是非程序员的代码控制。 我们正在使用.Net的ILOG规则来满足这种需求。

嗯,C#怎么样? 没有理由不让用户编写C#,然后将其安全地加载到具有所有正确限制和安全措施的另一个AppDomain中。

那么JScript.NET或PowerShell呢?

我认为通过CodeDom使用C#是非常强大的解决方案

已经提到过Boo和IronPython,但是不要忘记IronScheme , F#或任何已经移植到CIL虚拟机并具有运行时编译/解释的语言。

IronRuby每天看起来都很好。

有许多很多脚本语言 。 哪种方式最适合你取决于你想要做什么。

您应该分析用户需要执行的任务,他们已经熟悉的符号,并选择与之匹配的现有脚本语言。 您不应该选择一种流行的脚本语言,然后强制您的应用程序和用户适应它。

我也会投票使用C#来编写你的扩展。 除非你有一个令人信服的理由,例如现有用户群已经熟悉python,ruby或boo,否则引入另一种语言只会增加复杂性和培训成本。