問題タブ [dynamic-language-runtime]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 単体テストに使用できる動的言語は何ですか?
C# コードの複雑な受け入れテストを作成しようとしています。テストを作成しているときに、C# コンパイラを満足させるために多くの明示的なキャストを行っていることに気付きました。私は、C# のような静的に型付けされた言語を使用して実稼働コードで得られる型安全性が気に入っていますが、私のテストでは、動的に型付けされた言語 (IronPython や IronRuby など) を使用して、すべての明示的なキャストを回避できれば幸いです。私のテストがオブジェクトに存在しないメソッドを呼び出す場合、実行時にコードが失敗しても問題ありません (それは単なるテストの失敗です)。現在、単体テストのフレームワークとして MS Test を使用していますが、引き続き使用できると便利です。MS Test と統合するために使用できる動的 (DLR ベースの) 言語は何ですか? 役立つと思われる場合は、別のテスト フレームワークを自由に提案してください。
dynamic-language-runtime - DLR 0.9 は、実稼働環境で Microsoft によってサポートされていますか?
DLR が C# 4.0 と共にリリースされることは知っていますが、それがいつになるかはわかりません。それまでの間、DLR を本番環境 (ハードウェア リアルタイム システムを使用しない環境) で使用したい場合、C# 4.0 がリリースされるまで延期することを検討する必要がありますか?
私が尋ねていること: 既存のバージョン 0.9 は Microsoft によってサポートされていますか?
f# - デリゲート/DLR ラムダを使用してインスタンス メソッドをオーバーライドしますか?
F# と .Net を学ぶために、私はリリース予定の DLR をいじっています。
そのために、clr とうまく統合する基本的な型システムを実装するために、リフレクションをいじってみました。Object を拡張する単純な型をインスタンス化することはできますが、それが定義するメソッドを呼び出すとエラーが発生します。
結局のところ、DLR LambdaExpressions はデリゲートにコンパイルされるため、生成されたデリゲートから生成された MethodInfo を取り出して呼び出し、スタックに生成されたメソッドの引数を入力します。それからそれを返します。この時点で、エラーが発生します。
これが私のコードです:
fsiからの私のエラーは次のとおりです。
ヘルプや提案をいただければ幸いです。私は少し .Net 初心者なので、間違いは単純かもしれません。
マイク・コハウト
c# - メソッドを呼び出す LINQ 式を作成するにはどうすればよいですか?
私はDLRを少しいじっていて、メソッドの呼び出しに少しこだわっています。たとえば、何かをスタックにプッシュする式を作成したいとします。
_stack または item から Expression を取得する方法がよくわからないため、行き詰まっています。誰かが私を正しい方向に押してくれませんか?
c# - DLR (.NET 4.0 beta 1) に関する最良の情報源は何ですか?
私は現在、C# の第 2 版を詳細に調査しており、「動的プロトコル バッファ」を実装しようとしています。つまり、既存のプロトコル バッファ ライブラリの上にあるレベルの動的サポートを実装しようとしています。そのため、DlrMessage
から派生した型がありDynamicObject
ます。少し遊んだ後、非常に少ないコードで単純なプロパティに応答するようになりましたが、さらに先に進み、何が起こっているのかを本当に理解したいと思っています。
これまでのところ、DLR の適切な説明は見つかりませんでした。また、以前の CTP と .NET 4.0 ベータ 1 の間で状況が変わった (と私は信じています) ため、多くのブログ投稿は事実上古くなっています。MSDN のドキュメントfor DynamicObjectは現時点では最小限です。
私の最も直接的な質問は、「この特定のオブジェクトを使用して、処理できない呼び出しをリフレクションを使用してバインドする」という簡単な方法があるかどうかです。(言い換えれば、可能であれば、自分ですべてを行うのではなく、既存のリフレクション バインディングを拡張したいと考えています。) 残念ながら、当て推量ではあまり進んでいません。
私が知っておくべき決定的で最近のドキュメントのソースはありますか? 新しいテクノロジーについて書くことの一部が探索であることは承知していますが、助けていただければ幸いです :)
mono - JScript.NETを使用して.NETアプリケーションのスクリプトを作成できますか?
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
.net - 変換とボックス化解除の違いは何ですか?
DLR の LINQ 式では、次の違いは何ですか:
この:
これに関するドキュメントは少し大ざっぱなようです。
さらに、この C# コードに相当するものは次のどれですか。
ClassB には、ClassA にキャストするための暗黙的または明示的な演算子がありますか?
c# - 動的型を使用した C# 4.0 でのオーバーロードの解決
C# 4.0 プレビューにまだアクセスできません。しかし、次のケースでオーバーロードされたメソッドを呼び出すときに、C# 4.0 ランタイムは何をするのか、興味があります。一般的なオーバーロードに解決されますか...または特殊なオーバーロードに解決されますか。
c# - SilverlIght アプリケーションでの JScript の実行
Silverlight DLR を使用してスクリプト可能なアプリケーションを作成しようとしています。2 行以上のコードを含む JScript コードを実行しようとすると、最初の行のみが実行されます。例: 私は С# で書かれたコンパイル済み SL アプリケーションを持っていました。メイン ページには、「lblMessage」という名前のラベルと、Click イベント ハンドラを持つボタンが含まれています。
実行後、Label.Text は「コードの最初の行」文字列と等しくなります。
コードの 2 行目を無視したのはなぜですか?
ありがとうございました。