由于 MS 在最新的 DLR 中似乎已经杀死了服务器端(ASP.NET Futures)和客户端(Silverlight)的 Managed JavaScript, 有人成功地使用非过时的 API 来允许使用 JScript.NET 脚本化他们的应用程序对象,并且可以解释如何做到这一点吗?如果 Mono/JScript 解决方案稳定并满足以下要求,则也可以接受。
我们有兴趣升级脚本主机,它使用 Microsoft JScript 引擎和 ActiveScript API,以获得更好的性能和更容易的可扩展性。我们有超过 16,000 个服务器端脚本,总大小超过 42MB 的源代码,因此重新编写成其他脚本语言是不可能的。
我们的具体要求是:
- 比Microsoft JScript(ActiveScript)引擎具有显着更好的性能
- 更好的运行时性能和/或
- 保留预解析或编译的脚本(不在每次运行时重新解析)
- 更低或相等的内存消耗
- 完全符合ECMA-262 ECMAScript标准
- 可以容忍一些移植
- 将自定义对象注入到脚本命名空间中
- .NET对象(不是硬性要求)
- COM对象或包装在.NET中的COM对象
- 从脚本实例化COM对象
- 类似于“new ActiveXObject(progid)”
- 优先级较低,考虑到前面的内容
- 包含文件
- 将“帮助程序脚本”预加载到脚本执行上下文中
- 一个“include”函数或语句(鉴于以上内容,易于创建)
- 支持全局范围内的代码
- 执行全局范围内的代码
- 保留在全局范围内初始化的值
- 从全局范围提取值
- 注入和替换全局范围内的值
- 调用脚本定义的函数
- 带参数
- 并且可以访问先前初始化的全局范围
- 源级别调试
- 商业或开源支持
- 不过时的API