コードの特定のリフレクション ベースの部分を、動的なランタイム コンパイルを使用してパフォーマンスが向上する部分に置き換えたいと考えています。周りを見回すと、Mono と Microsoft の両方が Compiler-as-a-Service ソリューションを別々に持っていることがわかりました:Mono.CSharp
とMicrosoft.CSharp
.
意見に基づいた質問をするリスクがあるので、これら 2 つを比較するとどうなるでしょうか。
非常に表面的な初期調査からわかる限り、どちらも一般的に CAAS 機能を提供します。Microsoft.CSharp を使用して "Hello World" クラスをコンパイルし、実行することができました。私はまだ Mono で同じことをしていませんが、同じことができると思います。
どちらかまたは両方の経験があり、この問題についてコメントできる人はいますか?
編集: Mono の C# と Microsoft の C# の比較について質問しているわけではありません。私たちはすでに両方を使い慣れています。質問は、特に 2 つのCAAS ( Compiler-as-a-Service ) ソリューションに関するものです。
CAASは (まだとにかく) .NET ランタイムの標準部分ではありません。つまり、System.Compile
名前空間はまだありません。2 つのソリューションMono.CSharp
とMicrosoft.CSharp
は、C# 用の個別の非標準 CAAS ソリューションです。それらのインターフェースは非常に異なるため、質問です。