6

これがすでに回答されている場合は申し訳ありませんが、これに関する他の投稿は古くなっています。

HTML5 と JavaScript で Windows 8 アプリを構築し、F# ポータブル ライブラリ プロジェクトを使用して計算上の負担のかかる作業を行いたいと考えています。これは許されますか?JS プロジェクトから F# プロジェクトへの参照を追加しようとすると、VS2012 でエラーが発生しましたが、とにかく追加させてください。これは後で私の顔に爆発しますか? Windows Phone 8版も作りたい

ありがとう

4

2 に答える 2

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 は以前から存在しているので、より安定していると思います。また、フォームレット (および同様のパターン) に基づくより洗練された GUI フレームワークを追加しますが、 FunScriptは、TypeScript 定義をインポートする型プロバイダーを介して JQuery への型安全なアクセスを提供するだけです。

于 2013-02-28T02:20:39.483 に答える
4

JavaScript メトロ アプリは、.net ライブラリを直接呼び出すことはできません。JavaScript が F# ライブラリを呼び出せるようにするには、それを Windows ランタイム コンポーネント (winmd) に変換する必要があります。現在、マイクロソフトは公式に c# と VB のみをサポートしているため、F# を使用して winmd を作成できるかどうかは 100% 確信が持てません。WP8 側では、javascript は .net または winmd ライブラリを直接呼び出すことができないため、js と .net を手動でブリッジする必要があります。

于 2013-02-27T20:15:04.647 に答える