2

SilverLightアプリケーション内でRubyまたはPythonを使用できることがわかりました。

ここにリンク

..C#の代わりにこれらの言語を使用することで、SilverLightの制限の一部を回避できるかどうか疑問に思います。

.NET CLRと同様に、SilverLightアプリケーション内のRubyエンジンが縮小されていることを知っているので、完全なRubyまたはPythonエンジンのすべての機能がなくても次のことを知りたいと思います。

これらの動的言語を使用して、C#SilverLightでは実行できないことを実行できますか?

削減されたRuby実装を拡張するために(たとえばInterop呼び出しをサポートするために)コミュニティによって構築されたものをダウンロードする必要がある場合、デプロイメントにどのような影響がありますか?

そうでない場合、動的言語の一般的な利点に加えて、C#ではできないことをこれらのエンジンで実行できず、SilverLightのCLRの制限の一部を実際に回避できない場合は、なぜ使用することを選択するのでしょうか。 SilverLightアプリケーションのRuby?

私の関心の1つはソケットの使用です。SilverLightのソケットの使用はバージョンごとに改善されていますが、サーバー側でxml認証ファイルが必要なため、それでも問題が発生する可能性があります。rubyはこれを不要にすることができますか?

ありがとう、

リック

4

4 に答える 4

2

私はあなたがそれを回避することができないだろうと思う。ここで制限を課すのは言語ではなく、ランタイムであることに注意してください正確には、Silverlight自体です。この場合、C#とRubyの両方がCILにコンパイルされるため、ほぼ同じ機能が残ります(タイピングシステムのいくつかの違いを除く)。

于 2009-10-05T05:37:28.533 に答える
1

何をしているのかわかりません。言語に関係なく、同じ「サンドボックス」、セキュリティモデル内で実行されており、Silverlightの同じカットダウンライブラリで制限されています。コードがセキュリティモデルに違反していないと仮定すると、どの言語でも、「制限されている」と感じるビットを拡張できます。

別の言語を使用して別の方法で処理できる場合もありますが、同じ基本的な制約が適用されます。

于 2009-10-05T05:38:48.130 に答える
0

ファイルが xap に含まれていることを確認するか、Silverlight 3 slvx システムを使用して C# や VB などで定義されたアセンブリをストリーミングする必要があります。

Ruby 言語は完全な Ruby 実装である必要があるため、Ruby が提供するメタプログラミングなどのすべての言語機能を使用できます。動作させるには、すべてのソース ファイルを xap に含める必要があります。Ruby を使用している場合は、ゲシュタルトも取得され、現在 HTML ページに JavaScript ファイルを含めるのと同じ方法で Ruby ソース ファイルを含めることができます。

于 2009-10-05T15:28:33.720 に答える
0

.NET で動的言語を使用する最良のシナリオの 1 つは、ユーザーが独自のコードでアプリケーションを拡張できるようにすることです。これが、Silverlight アプリケーションで IronPython を使用する主な理由です。Silverlight の限定された .NET ランタイムでそれを利用できるのは非常に素晴らしいことです。統合は非常に簡単で (C# の拡張メソッドを Python で認識できるようにするのには苦労しましたが)、ユーザーにとって非常に強力です。

于 2009-10-06T00:54:34.880 に答える