有没有人知道针对.NET CLR/DLR的ECMAScript的真正实现(即没有虚构)?理想情况下,像Java中的Rhino一样。在.NET Framework/Mono Framework上运行的Rhino的可靠版本将是完美的选择。
我只看到过少数几个项目被提及,但从未见过任何结果,也没有看到我能够在其上运行脚本的实际内容。以下是我已知的内容:
MSScriptControl ActiveX Control: 据我所知,这是微软最后一个ECMAScript兼容的实现(运行JScript 5.7)。我已经与MSScriptControl集成,但不认为COM互操作是这个问题的答案。对于x64来说,这是致命的选项。
JScript.NET: 我不认为JScript.NET可以成功解析我的任何真实脚本。它似乎处理闭包时存在问题。
Managed JScript: 听起来像是我想要的,但似乎已经停滞不前。这是DLR的一个重要实现示例,但随后与SilverLight纠缠在一起,自2007年以来似乎已经失去了优先级。有关此状态的可信来源将会很有帮助。
MyJScript: 作为DLR的教程实现构建。有人知道它实现的完整性吗?
Jint: 为.NET提供的JavaScript解释器,目前还不支持柯里化或try
-catch
-finally
。
RemObjects Script for .NET: 一种正在开发中的有趣选项。他们的营销方式让我感到困惑,不过听起来它可能最终会成为一个适合的工具。如果有人对此了解更多,那将非常有帮助。
V8 for .NET: 如果有人将V8移植到.NET上,这将是很棒的事情。据我所知,目前没有大量关于这方面的努力。链接是一个调用受控C++包装器中的V8引擎的想法。
背景:我希望在.NET中执行JavaScript;即加载一组脚本到上下文中,并调用该上下文并检索执行结果。目前我通过麻烦的COM互操作来使用MSScriptControl。COM的不一致性使得部署和确保一致的执行非常困难。
我希望能够在.NET中执行相对复杂的JavaScript测试套件。这不是为了创建用户宏或简单的小脚本;我需要像Rhino这样实际的JavaScript环境。如果实现是运行在CLR上(而不是COM上),这将有助于解决当前的一些问题。