4

コードの特定のリフレクション ベースの部分を、動的なランタイム コンパイルを使用してパフォーマンスが向上する部分に置き換えたいと考えています。周りを見回すと、Mono と Microsoft の両方が Compiler-as-a-Service ソリューションを別々に持っていることがわかりました:Mono.CSharpMicrosoft.CSharp.

意見に基づいた質問をするリスクがあるので、これら 2 つを比較するとどうなるでしょうか。

非常に表面的な初期調査からわかる限り、どちらも一般的に CAAS 機能を提供します。Microsoft.CSharp を使用して "Hello World" クラスをコンパイルし、実行することができました。私はまだ Mono で同じことをしていませんが、同じことができると思います。

どちらかまたは両方の経験があり、この問題についてコメントできる人はいますか?


編集: Mono の C# と Microsoft の C# の比較について質問しているわけではありません。私たちはすでに両方を使い慣れています。質問は、特に 2 つのCAAS ( Compiler-as-a-Service ) ソリューションに関するものです。

CAASは (まだとにかく) .NET ランタイムの標準部分ではありません。つまり、System.Compile名前空間はまだありません。2 つのソリューションMono.CSharpMicrosoft.CSharpは、C# 用の個別の非標準 CAAS ソリューションです。それらのインターフェースは非常に異なるため、質問です。

Mono のコンパイラ サービス

Microsoft のコンパイラ サービス


編集 #2: Roslynのことを完全に忘れていた( @Lex Liに感謝)

4

2 に答える 2