Pregunta

[El solo una pregunta similar que puedo encontrar fue respondida 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 mezcla 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 script para incrustar.

¿Cuál es el mejor lenguaje de script simple para la incrustación de C # / .NET? ¿Es posible incrustar de alguna manera VBA de manera similar a Excel / Word? ¿O tal vez se utilizan JavaScript / Lua?

No hace falta decir que debería ser fácil exponer algunas API y objetos de la aplicación principal a los scripts incrustados.

¿Fue útil?

Solución

Sé que la otra pregunta hace referencia a IronPython , pero todavía siento que debería estar aquí porque creo Es una de las mejores opciones.

Otra gran opción sería IronRuby . La principal diferencia que veo sería si sus desarrolladores / usuarios tuvieran alguna experiencia con Python o Ruby que pudiera ser transferible.

Realmente, al final, su mejor opción será un idioma 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.

Otros consejos

Boo ¿quizás?

¡Lua es genial! Lua juega muy bien con .NET. Escribí una publicación de blog sobre cómo comenzar a incrustar Lua y C #, podría valer la pena echarle un vistazo:

http://blog.apterainc.com/software/embedding-lua -y-c /

Me gustaría ver en el flujo de trabajo de Windows XAML solamente. Puede volver a alojar al diseñador y proporcionar actividades personalizadas que se pueden arrastrar y utilizar para manipular los datos de la forma que deseen. 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 script 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 solicitó una tecnología de secuencias de comandos, pero la necesidad subyacente es el control de código para los no programadores. Estamos utilizando Normas de ILOG para .Net para satisfacer esa necesidad.

Umm, ¿qué tal C #? No hay ninguna razón por la que no pueda permitir que el usuario escriba C #, luego lo cargue de forma segura en otro AppDomain con todas las restricciones y garantías correctas.

¿Qué pasa con JScript.NET o PowerShell

Creo que usar C # a través de CodeDom es una solución muy poderosa

Se han mencionado

Boo y IronPython, pero no olvides IronScheme , F # , o cualquiera de los otros idiomas que se han portado 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.

Hay muchos, muchos, muchos lenguajes de script . Lo que sea mejor para usted depende de lo que intente hacer.

Debe analizar las tareas que necesitan realizar sus usuarios, la notación con la que ya están familiarizados y elegir un lenguaje de script existente que coincida con ellos. No debe elegir un lenguaje de script popular y luego obligar a su aplicación y a los usuarios a que encajen en él.

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top