8

MSは、サーバー側(ASP.NET Futures)とクライアント側(Silverlight)の両方で最新のDLRでマネージドJavaScriptを強制終了したように見えるため、廃止されていないAPIを使用して、JScript.NETでアプリケーションオブジェクトのスクリプトを作成できるようになりました。および/またはその方法を説明できますか?安定していて、以下の要件を満たしている場合は、Mono/JScriptソリューションも受け入れられる可能性があります。

MicrosoftJScriptエンジンとActiveScriptAPIを使用するスクリプトホストから、よりパフォーマンスが高く、拡張性が高いものにアップグレードすることに関心があります。16,000を超えるサーバー側スクリプトが42MBを超えるソースに含まれているため、別のスクリプト言語に書き直すことは問題外です。

具体的な要件は次のとおりです。

  • Microsoft JScript(ActiveScript)エンジンよりも著しく優れたパフォーマンス
    • 実行時のパフォーマンスの向上および/または
    • 事前に解析またはコンパイルされたスクリプトの保持(実行のたびに再解析しないでください)
    • メモリ消費量が少ないか等しい
  • ECMA-262ECMAScriptとの完全な互換性
    • 少しの移植は許容できます
  • スクリプト名前空間へのカスタムオブジェクトの挿入
    • .NETオブジェクト(難しい要件ではありません)
    • .NETでラップされたCOMオブジェクトまたはCOMオブジェクト
  • スクリプトからのCOMオブジェクトのインスタンス化
    • àla"新しいActiveXObject(progid)"
    • 先行することを考えると優先度が低い
  • ファイルを含める
    • 「ヘルパースクリプト」のスクリプト実行コンテキストへのプリロード
    • 「include」関数またはステートメント(上記の場合、作成が簡単)
  • グローバルスコープでのコードのサポート
    • グローバルスコープのコードの実行
    • グローバルスコープで初期化された値の保持
    • グローバルスコープからの値の抽出
    • グローバルスコープでの値の挿入と置換
  • スクリプト定義関数の呼び出し
    • パラメータ付き
    • 以前に初期化されたグローバルスコープにアクセスできます
  • ソースレベルのデバッグ
  • 商用またはオープンソースのサポート
  • 廃止されていないAPI
4

7 に答える 7

3

ここで同様の質問に答えました。DLR で実行される F# での JavaScript の実装であるIronJSをご覧ください。

于 2010-04-08T20:22:24.317 に答える
2

遅かれ早かれ、誰かがDLRJavascriptを書くことになると思います。今のところ、それはあまり便利ではないことは知っていますが、プロジェクトを開始できるかもしれません。JScript.NETを使用するよりも、費用便益分析の方が優れていると思います。

于 2009-06-02T17:08:39.700 に答える
1

スクリプトプラットフォームとしてC#を実行できるようになるため、CSScript.netを使用しました。サイトから:

CS-Scriptは、C#とFCLのパワーと豊富さを、スクリプトシステムの柔軟性と組み合わせています。CS-Scriptは、システムおよびネットワークの管理者、開発者、テスターに​​役立ちます。さまざまなプログラミングタスクを解決するための自動化が必要な人のために。

CSスクリプトは、レイアウトしたすべての条件を満たす。私はそれをBooの代わりとして本番環境で使用しました。それは本当にうまく機能しました。ここで実際の動作を確認できます。

于 2009-12-23T00:38:10.763 に答える
1

.NET と Microsoft から離れても問題ない場合は、Mozilla のRhinoを試してみてください。これは、完全に Java で記述された JavaScript のオープンソース実装です。最新のサーバー側 js ライブラリの多くは、このプラットフォームをターゲットにしています。

于 2009-06-16T15:16:54.053 に答える
0

ジュラ紀のエンジンは生きていて、蹴っています。

コードプレックス サイトから:

  • ES5 厳格モードを含む、ECMAScript 3 および ECMAScript 5 のすべての機能をサポート
  • 十分にテスト済み - 5,000 を超える単体テストに合格 (3 万を超えるアサート)
  • シンプルでありながら強力な API
  • JavaScript を .NET バイトコード (CIL) にコンパイルします。通訳ではありません
  • 単一の .NET アセンブリとして展開 (ネイティブ コードなし)
  • Visual Studio 内の統合デバッグの基本サポート
  • 軽量コード生成を使用するため、生成されたコードは完全にガベージ コレクションされます
  • .NET 3.5、.NET 4、および Silverlight でテスト済み
于 2013-12-08T23:29:26.533 に答える
0

Com 相互運用機能を使用するということは、Java と Opensource がそれをできるだけ使いたがらない MS ソリューションに制限されることを意味します。

COM/.NET のすべてを捨てて Java (Rhino) /Linux/オープン ソースに移行するか、PHP を使用する Linux の世界でもサーバー言語として Javascript を使用することに疑問を呈するかのいずれかで、すべての要件をサポートするソリューションが見つかりません。 Java を実行できない場合は、/Python/Ruby をサーバーに追加します。言語が主な障壁であるため、Java スクリプトを使用してもパフォーマンスが大幅に向上することはありません。

サーバーの Java スクリプトが急速に衰退しているため、新しい DLR を作成する人は期待できません。

パフォーマンスが必要であることを考慮して、F# についてはどうでしょうか。Microsoft は少なくとも 5 年間は Jscript エンジンのサポートを維持し、コードをゆっくりと移行しながら、F# で新しいものを作成する時間を提供します。

于 2009-12-01T04:40:05.420 に答える