问题标签 [managed-jscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
670 浏览

.net - 在 .NET 桌面和浏览器之间共享 JavaScript 代码

我有一组核心、复杂的 JavaScript 数据结构/类,我希望它们能够在浏览器中作为 JavaScript 使用,并在带有 .NET 3.5 的桌面上运行。是否可以将 Web 友好的 JavaScript 编译成我的 C# 代码可以访问的程序集?

  • 托管 JScript - 是否有可用的编译器来生成可以在桌面 CLR 上运行的东西?我只看到了 Silverlight 运行时的已发布示例。听起来它不像在桌面上正式可用,但我愿意尝试一些不那么幸运的东西,比如我可以用 Silverlight 工具编译然后在桌面 CLR 上运行吗?
  • JScript .NET - 听起来它有足够的自定义语言扩展,在浏览器中运行相同的代码真的很难,但也许有办法......?

如果这些都不起作用,我想我的选择是:

  • 有一个 C# 版本和一个 JavaScript 版本,我必须保持同步(糟糕)。
  • 编写一个在编译时运行的预处理器,将我的 JavaScript 转换为 JScript .NET 或我可以编译为 .NET 程序集的东西。
  • Script#:看起来这会将 C# 代码转换为 JavaScript 代码。不太好,因为我希望能够直接大量调整 JavaScript 代码,但它可以工作。

任何人都成功地使用了这些选项?

0 投票
8 回答
1829 浏览

asp.net - 在哪里可以下载 DLR 的托管 JScript?

动态语言运行时的最新版本(0.9 稳定版)包含 IronPython 和 IronRuby,但不包含托管 JScript。

有谁知道我可以在哪里下载最新版本的托管 JScript 以用于 ASP.NET 和/或 WPF?

如果您不知道,JScript.NET 和托管 JScript 是完全不同的东西。我正在寻找的是托管 JScript。

0 投票
7 回答
2359 浏览

mono - JScript.NET 可以用于编写 .NET 应用程序的脚本吗?

由于 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
0 投票
1 回答
148 浏览

pinvoke - 如何在提琴手 JScript.NET 函数中执行 PInvoke?

Fiddler使用.NET JScript 语言编写脚本。调用 .NET 方法和启动 .NET 类很容易,但我不知道如何用属性装饰事物,因此我不知道如何 PInvoke。

0 投票
2 回答
486 浏览

c# - C# & VSAEngine - 用指数计算字符串表达式?

我这里有个问题,所以我需要帮助:)

当我用 jscript vsa 引擎计算这样的表达式“(10.5 + 3.5 / 2)* 2”时,没关系,但现在我有一个问题......如果在上面的字符串中,我也想计算一个指数(10.5 + 3.5 / 2)* 2 + exp(2),最好的方法是什么?

PS: Math.Exp(); -- 不是一个选项。

0 投票
1 回答
163 浏览

c#-4.0 - C#<-->JScript:不可见的数组?

我有一个复杂的程序,它给了我这个明显的幻觉错误......
我将在我操纵的这个小示例程序的帮助下开始解释,它可以为运行它的任何人抛出我美丽的异常。

抛出的异常是“索引越界”,它是从 JScript 中抛出的。问题?就是没有数组!

这段代码在做什么:首先,通过在运行时编译一个“导出”一个 eval 的类来初始化一个 JScript 解释器(可以做一个 dll,但在这种情况下我没有)。
然后编译一个 C# 程序集,一个“导出”一些用户代码的程序集(initCS 中的变量 _code 最初是通过读取文本文件加载的)。
新编译的类初始化后(调用init()),需要两个程序集(JScript和C#)交互,所以需要在它们之间传递数据,想到了使用AppDomain。
注意:在 C# 程序集中定义了一个 Hashtable2,因为我在其中放入了一个 ITEM 方法,可以用来替代公共属性 this[]: 以这种方式调试更容易(例如,在访问值时显示一个神圣的 MessageBox )。
因此,我将 initCS 中实例化的类传递给 JScript,而 JScript 读取内部 Hashtable (HT)。我需要做的是评估 Hashtable 中的数据,因为它应该能够动态地改变自己。
如果我 eval 不是从 Hashtable 中获取的字符串,一切正常——在我获取 Hashtable 中的任何内容并将其传递给 eval 的那一刻,就会发生异常。注意:字符串是完全相同的(即使将它们与 Equals 进行比较)并且它们有效,不同之处仅在于它们来自哪里。
当 JScript 函数 edata 对取自 Hashtable 的字符串进行求值时,JScript 会说“索引超出范围”,但正如我所说:我在那里看不到任何数组......(也许问题正是如此,不知道) .
我承认我在 JScript 方面有自己的局限性,所以如果有人能帮助理解 WTF 正在发生的事情,我会非常高兴。