È necessario creare un'interfaccia di scripting per il mio programma C# che esegua il test a livello di sistema del firmware incorporato.Estensione dell'applicazione C# .NET - creare un linguaggio di scripting personalizzato o no?
La mia applicazione contiene librerie per interagire pienamente con i dispositivi. Esistono librerie separate per avviare azioni, ottenere output e tracciare successi/insuccessi. La mia applicazione ha anche una GUI per la gestione di più dispositivi e l'assegnazione di molti script da eseguire.
Per i tester (non programmatori, ma tecnici), è necessario fornire un'interfaccia di scripting che consenta loro di creare scenari diversi per testarli ed eseguirli. Chiameranno le mie API e restituiranno un risultato al mio programma (pass/fail e messaggio).
Un esempio molto semplice di ciò che voglio:
TURN_POWER_ON
TUNE_FREQUENCY frequency
WAIT 5
IF GET_FREQUENCY == frequency
REPORT_PASS "Successfully tuned to " + frequency
ELSE
REPORT_FAIL "Failed to tune to " + frequency
ENDIF
TURN_POWER_OFF
Se le funzioni di reporting, potenza e frequenza sono forniti dai miei C# librerie.
Sarà qualcosa di simile a IronRuby o IronPython essere buono per questo, o dovrei semplicemente creare il mio linguaggio di base?
Il codice Ruby/Python si confonde quando si tenta di includere un gruppo di assembly compilati .NET? Voglio che sia facile da imparare e codificare per programmatori e programmatori.
EDIT:
Grazie per tutte le grandi risposte. Ho scelto IronPython come risposta dal momento che aveva il maggior supporto, ma passerò un po 'di tempo con IronPython, Boo e IronRuby per vedere in che cosa i tester preferirebbero scrivere script.
Che bello :) Ci sono dei buoni esempi/tutorial per questo tipo di integrazione? Mi piacerebbe vedere come appare il codice Python finale per qualcosa di simile. – cgyDeveloper
Sono abbastanza sicuro che IronPython In Action ne copre alcuni (anche se essere alberi morti potrebbe non essere aggiornato); potresti guardare qui: http://blogs.msdn.com/srivatsn/archive/2008/09/16/hosting-ironpython-made-easier.aspx –
Ho un esempio che mostra come usare Python per lo scripting C# (o VB.NET) sul mio blog all'indirizzo http://www.gotnet.biz/Blog/post/Mixing-Static-and-Dynamic-dotNET-Languages-November-2008-Update.aspx –