【问题标题】:Using JavaScript With C# For non browser based operations将 JavaScript 与 C# 一起用于非基于浏览器的操作
【发布时间】:2008-12-14 17:47:38
【问题描述】:

我最近不得不快速浏览一下 Adob​​e InDesign 服务器。在这个环境中,您通过 JavaScript 编写与服务器库的交互。

这让我开始思考,如何在 C# 应用程序中使用 Javascript 语言,以便我可以公开我的 API/框架的部分功能,并允许其他人使用 JavaScript 编写小型插件。

由于 JS 是一种非常流行的语言,所以我本以为我不必编写自己的解释器或其他任何东西,但我可能错了。有什么想法可以从这样的事情开始吗?

干杯,克里斯。

【问题讨论】:

    标签: c# javascript


    【解决方案1】:

    检查这个问题:

    Referencing Google’s V8 engine from a .NET app

    这篇文章可能很有趣:

    Evaluating JavaScript code from C#(使用 MS JScript 引擎)

    【讨论】:

    • CMS,这很有趣,但似乎很奇怪,为了解析 JS,我必须使用非托管 C++ 引擎并坚持构建包装类以进行互操作。不过,正如我所说,看起来很有趣。值得一玩。
    【解决方案2】:

    当 Microsoft 发布托管 JScript (http://blogs.msdn.com/deepak/archive/2007/05/02/managed-jscript-is-availaible.aspx) 后,这将大大变得容易

    如果您暂时不使用 Javascript,我会查看 IronPython (http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython) - 托管 API 与 Microsoft 将为 JS 发布的 API 相同,并且尽可能简单,并且可以切换3 种 DLR 语言(IPy、IronRuby 和托管 JS)之间的关系是微不足道的。

    编辑:哎呀,显然它现在作为 ASP.NET Futures 的一部分提供 - 我以为它只在 Silverlight 中提供;去吧!

    【讨论】:

    • 实际上我们只是在看 IPy。很高兴看到这在 ASP.NET 期货中可用。顺便说一句,当我听说动态语言 Silverlight 时,总是会被提及,知道为什么会这样吗?
    • 这是因为 Silverlight 内置了 IPy/IRb 的嵌入式副本,因此您可以编写 Python 代码来控制您的 SL 小程序。 Silverlight 是 MS 设计 DLR 的主要场景之一。
    • 为什么与 .NET 框架的任何其他方面相比,Silverlight 从 DLR 中获益更多?
    【解决方案3】:

    尝试 Javascript .NET:

    http://javascriptdotnet.codeplex.com/

    它实现了 Google V8。您可以使用它直接从 .NET 代码编译和运行 Javascript,并提供 CLI 对象以供 Javascript 代码使用。而且 V8 可能是有史以来性能最好的引擎,它从 Javascript 生成本机代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多