.net - 嵌入式脚本环境的优点/缺点?

标签 .net scripting embedded-language

有多种脚本环境可用于 .NET 应用程序(例如 this post)。

我的问题是,使用它们各自的优缺点是什么?

示例包括(但不限于)

  • PowerShell
  • IronPython
  • 路亚
  • JavaScript

我正在尝试决定在科学应用程序中使用哪种脚本工具,以允许专家用户与复杂的模型进行交互,以便他们可以创建新的算法。

最佳答案

我没有嵌入 Powershell 的经验,但我假设它很像 IronPython,因为它最终与 CLR 紧密相连。

所以:

PowerShell/IronPython

我会将这两者归为一类,最大的优点是能够通过 CLR 进行直接通信。

这些的负面影响可能是内存使用和运行时性能。尽管因为它已经在 CLR 中运行了,所以应该没有太大区别。

Lua/Javascript

相似之处在于,两者最终都将使用某种 P/Invoke API 嵌入。 (或 COM 互操作)

专业版:速度快,占用内存少。 缺点:P/Invoke、非托管代码等。

在 Lua 和 Javascript 之间:

Lua 可能比 Javascript 更快,占用内存更少,但 Javascript 有更熟悉的 OOP 和 FP 习语融入到语言中。

关于.net - 嵌入式脚本环境的优点/缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2609794/

相关文章:

c# - 快速 TIFF 图像转换以显示在网络客户端中

c# - 在应用程序崩溃时释放 com 对象

visual-studio - 如何通过脚本使用Visual Studio自动格式?

c - 如何在 C 程序中编译 Perl 代码?

c# - 无法从 C# 项目引用 IronPython 项目

.net - 启动编译为目标 'Any CPU' 的 .NET 应用程序时出错

c# - 如何禁用 WebBrowser 鼠标中键单击自动滚动?

java - 不使用 crontab 将 java 程序作为调度程序运行

bash - 搜索一个字符串,并检索它后面的所有行,直到另一个特定模式

c++ - Python对象到C++指针问题