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

时间:2008-11-07 11:55:53

标签: .net javascript script# jscript.net managed-jscript

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

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

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

  • 拥有C#版本和JavaScript版本,我必须保持同步(哎呀)。
  • 编写一个在编译时运行的各种预处理器,将我的JavaScript转换为JScript .NET或者我可以编译成.NET程序集的东西。
  • 脚本#:看起来这会将C#代码变成JavaScript代码。因为我希望能够直接重新调整JavaScript代码,但它可以正常工作,这并不令人敬畏。

任何人都可以成功使用这些选项吗?

3 个答案:

答案 0 :(得分:1)

JScript.Net实际上主要与EMCAScript3兼容。只要您将代码视为处理库(只进行处理,等等 - 使用回调来与程序进行交互),您应该没问题。 我正在做类似的事情,使用javascript作为我的核心解析库,然后在python,dotnet和php中使用它。

答案 1 :(得分:1)

托管JavaScript(IronJScript)似乎已被杀死。见this answer

答案 2 :(得分:0)

另一种选择如何:

  • 通过winforms的WebBrowser控件在桌面应用程序中托管javascript应用程序?

这可能吗?

您也可以从WebBrowser控件访问DOM,但并非完全支持您想要的所有内容。