Linguaggio di scripting da incorporare in applicazioni C # /. NET? [chiuso]
Domanda
[The solo una domanda simile posso trovare una risposta molto tempo fa e contiene un riferimento principalmente a IronPython. Voglio prendere in considerazione anche altre opzioni]
Abbiamo un'applicazione complessa di analisi dei dati scritta in C #. L'applicazione dovrebbe fornire agli utenti un mezzo sofisticato per personalizzare le loro attività di analisi dei dati. Attualmente, utilizziamo una combinazione di file di configurazione e tabelle Excel per specificarlo, ma diventa ingombrante, quindi stiamo cercando un linguaggio di scripting da incorporare.
Qual è il miglior linguaggio di scripting semplice per l'incorporamento C # /. NET? È possibile in qualche modo incorporare VBA in modo simile a Excel / Word? O forse vengono utilizzati JavaScript / Lua?
Inutile dire che dovrebbe essere facile esporre alcune API e oggetti dall'applicazione principale negli script incorporati.
Soluzione
Conosco gli altri riferimenti alle domande IronPython , ma sento ancora che dovrebbe essere qui perché penso è una delle migliori opzioni.
Un'altra grande opzione sarebbe IronRuby . La differenza principale che vedo sarebbe se i tuoi sviluppatori / utenti avessero avuto esperienza con Python o Ruby che potesse essere trasferibile.
Davvero, alla fine la tua migliore opzione sarà una lingua che gli utenti potranno facilmente adattare. A meno che non lo accettino e siano in grado di essere più produttivi di quanto non fossero con il vecchio metodo, non vale la pena.
Altri suggerimenti
Boo forse?
Lua è fantastica! Lua gioca davvero bene con .NET. Ho scritto un post sul blog su come iniziare a incorporare Lua e C #, potrebbe valere la pena di dare un'occhiata:
Vorrei esaminare XAML solo Windows Workflow. È possibile ospitare nuovamente il progettista e fornire attività personalizzate che possono essere trascinate e utilizzate per manipolare i dati nel modo che preferiscono. MOLTO visivo. Attualmente lo sto usando in una delle mie applicazioni e gli utenti sembrano adorarlo. Sebbene vi sia una piccola curva di apprendimento, è molto meno di un tipico linguaggio di scripting e le persone sembrano essere in grado di afferrarlo abbastanza rapidamente, specialmente quelli con esperienza nell'uso dei diagrammi di flusso e Visio.
So che hai richiesto una tecnologia di scripting, ma la necessità di fondo è il controllo del codice per i non programmatori. Stiamo utilizzando Regole ILOG per .Net per soddisfare tale esigenza.
Umm, che ne dici di C #? Non c'è motivo per cui non si possa permettere all'utente di scrivere C #, quindi caricarlo in sicurezza in un altro AppDomain con tutte le restrizioni e le garanzie corrette.
Che dire di JScript.NET o PowerShell
Penso che usare C # tramite CodeDom sia una soluzione molto potente
Boo e IronPython sono stati menzionati, ma non dimenticare IronScheme , F # o uno qualsiasi dei altre lingue che sono state portate sulla macchina virtuale CIL e hanno compilazione / interpretazione di runtime.
IronRuby ha un aspetto migliore ogni giorno.
Ci sono molti, molti linguaggi di scripting . La cosa migliore per te dipende da cosa stai cercando di fare.
Dovresti analizzare le attività che i tuoi utenti devono fare, la notazione con cui hanno già familiarità e scegliere un linguaggio di scripting esistente che le corrisponda. Non dovresti scegliere un linguaggio di scripting popolare, quindi forzare l'applicazione e gli utenti a inserirsi in esso.
Vorrei anche votare per l'uso di C # per scrivere le tue estensioni. A meno che tu non abbia una ragione convincente come una base di utenti esistente che abbia già familiarità con Python, Ruby o Boo, portare un'altra lingua non fa che aggiungere complessità e costi di formazione.