抱歉,如果已经回复,但其他帖子已过期。
我想在HTML5和JavaScript中构建一个Windows 8应用程序,该应用程序使用F#可移植库项目来完成计算繁重的工作。这是允许的吗?当我试图从JS项目中添加对我的F#项目的引用时VS2012给了我一个错误,但是我还是让它添加它,这会在以后爆炸吗?我也想制作一个Windows Phone 8版本
由于
答案 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调用):
我只有FunScript的经验(效果非常好并且有一些很好的功能),但是WebSharper已经存在了很长时间,所以我认为它更加坚固。它还添加了基于 formlets (和类似模式)的更复杂的GUI框架,而FunScript只是通过导入TypeScript定义的类型提供程序提供对JQuery的类型安全访问。