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