繁体   English   中英

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

[英]Sharing JavaScript code between .NET desktop and browser

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

  • 托管JScript-是否有可用的编译器来生成可以在桌面CLR上运行的程序? 我只看到了Silverlight运行时的已发布示例。 听起来好像它不能在桌面上正式可用,但我愿意尝试一些不太受人欢迎的事情,例如我可以使用Silverlight工具进行编译然后在桌面CLR上运行吗?
  • JScript .NET-听起来好像有足够的自定义语言扩展,要在浏览器中运行相同的代码确实很困难,但是也许有办法...?

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

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

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

JScript.Net实际上主要符合EMCAScript3。 只要将代码视为处理库(仅对代码进行处理等-使用回调与程序进行交互),就可以了。 我正在做类似的事情,使用javascript作为我的核心解析库,然后在python,dotnet和php中使用它。

托管JavaScript(IronJScript)似乎已被杀死。 看到这个答案

另一个选择如何:

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

这可能吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM