私は現在、ソースコードを書かずに「プログラム」を作成できるアプリケーションを開発しています。必要に応じて、クリックして再生するだけです。
ここでの問題は、データ モデルから実行可能プログラムをどのように生成するかです。多くの可能性がありますが、どれが私に最適かはわかりません。クラスと名前空間、およびアプリケーションの一部になる可能性のあるすべてのものを含むアセンブリを生成する必要があります。
CodeDOM クラス: このクラスには多くの制限とバグがあると聞きました。メソッドのパラメーターと戻り値に属性を作成する必要があります。これはサポートされていますか?
プログラムで C# ソース コードを作成し、それに対して CompileAssemblyFromFile を呼び出します。必要なコードを生成でき、C# はほとんどの CLR 機能をサポートしているため、これは機能します。しかし、これは遅くありませんか?
リフレクション ILGenerator クラスを使用します。これを使用すると、考えられるすべての .NET コードを生成できると思います。しかし、これは他のアプローチよりもはるかに複雑でエラーが発生しやすいと思いますか?
他に考えられる解決策はありますか?
編集: このツールは、アプリケーションを開発するための一般的なものであり、特定のドメインに限定されません。それがビジュアルプログラミング言語と見なされるかどうかはわかりません。ユーザーは、クラス、メソッド、メソッド呼び出し、あらゆる種類の式を作成できます。実際のプログラミング言語で許可されているほとんどのことを実行できるはずなので、それほど制限はありません。現時点では、まだ多くのことをユーザーがテキストとして記述しなければなりませんが、最終的な目標は、ほぼすべてをまとめてクリックできるようにすることです。