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

时间:2009-01-20 17:42:39

标签: c# .net scripting embed

[我能找到的only similar question很久以前就得到了解答,并且主要包含对IronPython的引用。我想考虑其他选项]

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

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

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

12 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:8)

或许

Boo

答案 2 :(得分:7)

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

JScript.NETPowerShell

怎么样?

答案 7 :(得分:2)

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

答案 8 :(得分:2)

已经提到了Boo和IronPython,但是不要忘记IronSchemeF#或任何已移植到CIL虚拟机并具有运行时编译/的other languages解释

答案 9 :(得分:2)

IronRuby每天看起来都很好。

答案 10 :(得分:1)

有很多很多很多scripting languages。哪种方式最适合你取决于你想要做什么。

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

答案 11 :(得分:0)

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