Actualmente estoy desarrollando una aplicación donde puede crear "programas" sin escribir código fuente, simplemente haga clic en & reproducir si lo desea.Generación de código dinámico
Ahora la pregunta es cómo puedo generar un programa ejecutable desde mi modelo de datos. Hay muchas posibilidades, pero no estoy seguro de cuál es la mejor para mí. Necesito generar ensamblajes con clases y espacio de nombres y todo lo que puede ser parte de la aplicación.
Clase de CodeDOM: Escuché de muchas limitaciones y errores de esta clase. Necesito crear atributos en los parámetros del método y valores devueltos. ¿Esto es compatible?
Cree el código fuente de C# mediante programación y luego llame a CompileAssemblyFromFile en él: Esto funcionaría ya que puedo generar cualquier código que desee y C# es compatible con la mayoría de las características de CLR. ¿Pero no sería esto lento?
Usa la clase de reflexión ILGenerator: creo que con esto puedo generar todos los códigos .NET posibles. Pero creo que esto es mucho más complicado y propenso a errores que los otros enfoques.
¿Hay otras posibles soluciones?
EDIT: La herramienta es general para el desarrollo de aplicaciones, no está limitada a un dominio específico. No sé si se puede considerar un lenguaje de programación visual. El usuario puede crear clases, métodos, llamadas a métodos, todo tipo de expresiones. No será muy limitante porque debería poder hacer la mayoría de las cosas permitidas en los lenguajes de programación reales. Por el momento, el usuario debe escribir muchas cosas como texto, pero el objetivo al final es que se pueda hacer clic en casi todo.
¿Puedes dar un ejemplo del tipo (o tipos) de "programas" que se crearán a partir de esto? –
He actualizado la pregunta, consulte mi edición. – codymanix
Todavía no puedo ver lo que intentas lograr: ¿es algo así como una DSL o estás tratando de crear un lenguaje de programación de alto nivel de uso general que se ejecute en C#? – glenatron