2011-01-03 16 views
6

Desidero consentire ai miei utenti di utilizzare un linguaggio di script per personalizzare ulteriormente la mia applicazione.
Sto cercando un motore di script integrabile che sia thread-safe, perché è un'applicazione ASP.NET. Ho controllato alcuni motori, come Javascript.NET (https://github.com/JavascriptNet/Javascript.Net) ma non è thread sicuro. Altre implementazioni che ho trovato non sembrano abbastanza stabili.Scripting Engine per l'applicazione asp.net

Eventuali suggerimenti?

Grazie,

Fábio

+0

JavaScript.Net è thread-safe in questi giorni, anche se è necessario eseguire un po 'del proprio blocco se si desidera che più thread chiamino nella stessa istanza del motore. –

risposta

3

Forse IronPython o IronRuby sotto il DLR è adatto?

È possibile contrassegnare i punti di estensione utilizzando MEF e consentire agli script di estendere le funzionalità dell'applicazione.

Lo abbiamo usato con successo in MahTweets (un'applicazione WPF) - ma non posso garantire per il suo utilizzo in una situazione ASP.NET.

Ovviamente, la sicurezza del thread sarà la vostra minima preoccupazione se si consente a persone a caso di eseguire codice arbitrario all'interno dell'applicazione. Avranno tutte le funzionalità per bypassare completamente qualsiasi funzionalità di sicurezza che possiedi e modificare/copiare qualsiasi dato utente. Caveat Emptor ..

+0

Per favore non chiamare i miei utenti "persone a caso". Sono facilmente offesi :). – Fabio

+0

Spiacente, "Terze parti sconosciute": p –

+2

se si attiva un nuovo AppDomain per l'esecuzione del motore di script e si impostano restrizioni pesanti su di esso, si dovrebbe essere in grado di bloccare l'ambiente di scripting praticamente. –

2

È inoltre possibile utilizzare Lua con qualcosa come LuaInterface (http://code.google.com/p/luainterface/). A seconda del tuo livello di astrazione e/o libertà per l'utente che scrive lo script, potresti dover rifattorizzare un sacco di codice se vuoi introdurre un motore di scripting.