在Windows 8和Windows Phone 8上使用带有HTML5 / Javascript的F#可移植库

时间:2013-02-27 16:03:22

标签: javascript html windows-8 f# windows-phone-8

抱歉,如果已经回复,但其他帖子已过期。

我想在HTML5和JavaScript中构建一个Windows 8应用程序,该应用程序使用F#可移植库项目来完成计算繁重的工作。这是允许的吗?当我试图从JS项目中添加对我的F#项目的引用时VS2012给了我一个错误,但是我还是让它添加它,这会在以后爆炸吗?我也想制作一个Windows Phone 8版本

由于

2 个答案:

答案 0 :(得分:4)

JavaScript metro应用无法直接调用.net库。为了使javascript能够调用您的F#库,您应该将其转换为Windows运行时组件(winmd)。现在,我不是100%确定是否可以使用F#制作winmd,因为官方微软只支持c#和VB。在WP8端,javascript无法直接调用.net或winmd库,因此您必须手动桥接js和.net。

答案 1 :(得分:4)

据我所知,当前的F#编译器无法创建WINMD组件(Denis提到),因此您无法直接从JavaScript调用F#代码。有可能(但我不确定!)将F#库创建为可移植库,并从编译为WINMD组件的C#项目引用它,然后从JavaScript引用 。这增加了一个额外的步骤,因此可能有点不方便。

请将此作为Visual Studio UserVoice的反馈提交。如果更多人投票明确表示这对他们来说是一个重要的场景,那么更有可能被添加!

或者,如Ramon所述,有些工具可以将F#转换为JavaScript,并允许您将F#代码作为JavaScript运行(并直接从JS调用):

  • WebSharper是一种受商业支持的产品,根据AGPL许可证提供开源版本。
  • FunScript是最近在Apache 2.0
  • 下提供的开源社区工作

我只有FunScript的经验(效果非常好并且有一些很好的功能),但是WebSharper已经存在了很长时间,所以我认为它更加坚固。它还添加了基于 formlets (和类似模式)的更复杂的GUI框架,而FunScript只是通过导入TypeScript定义的类型提供程序提供对JQuery的类型安全访问。