ventajas - Lenguaje de scripts para incrustar en aplicaciones C#/.NET?
para que sirve c# (12)
[La única pregunta similar que puedo encontrar se contestó hace mucho tiempo y contiene una referencia principalmente a IronPython. Quiero considerar otras opciones también]
Tenemos una aplicación de análisis de datos compleja escrita en C #. La aplicación debe proporcionar a los usuarios un medio sofisticado para personalizar sus tareas de análisis de datos. Actualmente, utilizamos una combinación de archivos de configuración y tablas de Excel para especificar esto, pero se vuelve difícil de manejar, por lo que estamos buscando un lenguaje de scripts para incrustar.
¿Cuál es el mejor lenguaje de scripting simple para la incrustación de C # /. NET? ¿Es posible de alguna manera incrustar VBA de manera similar a Excel / Word? ¿O quizás se usan JavaScript / Lua?
Huelga decir que debería ser fácil exponer algunos API y objetos de la aplicación principal a los scripts incrustados.
¡Lua es genial! Lua juega muy bien con .NET. Escribí una publicación en el blog sobre cómo comenzar a incorporar Lua y C #; podría valer la pena revisarla:
¿Qué pasa con JScript.NET o PowerShell?
Creo que usar C # a través de CodeDom es una solución muy poderosa
Hay muchos, muchos, muchos lenguajes de scripting . Lo mejor para usted depende de lo que está tratando de hacer.
Debe analizar las tareas que los usuarios deben hacer, la notación con la que ya están familiarizados y seleccionar un lenguaje de scripts existente que coincida con ellos. No debe elegir un lenguaje de scripting popular y forzar a su aplicación y a los usuarios a encajar en él.
Me gustaría ver en el XAML solo Windows Workflow. Puede volver a hostigar al diseñador y proporcionar actividades personalizadas que se pueden arrastrar y utilizar para manipular los datos de la manera que quiera. MUY visual. Actualmente estoy usando esto en una de mis aplicaciones, y parece que a los usuarios les encanta. Si bien hay una pequeña curva de aprendizaje, es mucho menos que un lenguaje de scripting típico, y las personas parecen ser capaces de comprenderlo con bastante rapidez, especialmente aquellos con experiencia en el uso de diagramas de flujo y Visio.
Sé que la otra pregunta hace referencia a IronPython , pero todavía siento que debería estar aquí porque creo que es una de las mejores opciones.
Otra gran opción sería IronRuby . La principal diferencia que veo sería si tus desarrolladores / usuarios tuvieran alguna experiencia con Python o Ruby que pudiera ser transferible.
Realmente, al final su mejor opción será un lenguaje que los usuarios puedan adaptar más fácilmente. A menos que lo acepten y puedan ser más productivos que con el método anterior, no vale la pena el esfuerzo.
Sé que solicitó una tecnología de scripting, pero la necesidad subyacente es el control del código para los no programadores. Estamos usando ILOG Rules for .Net para satisfacer esa necesidad.
También votaría por usar C # para escribir sus extensiones. A menos que tenga una razón convincente, como una base de usuarios existente que ya esté familiarizada con python, ruby o boo, incorporar otro idioma solo agrega complejidad y costo de capacitación.
Umm, ¿qué hay de C #? No hay ninguna razón por la cual no pueda permitir que el usuario escriba C #, luego la cargue de manera segura en otro AppDomain con todas las restricciones y garantías correctas.
Boo tal vez?
Se han mencionado Boo e IronPython, pero no se olvide de IronScheme , F # , o cualquiera de los otros idiomas que han sido portados a la máquina virtual CIL y tienen compilación / interpretación en tiempo de ejecución.
IronRuby se ve mejor todos los días.