Je souhaite créer une application Web ASP.NET MVC dont la logique extensible ne nécessite pas de reconstruction. Je pensais créer un filtre avec une instance du moteur IronPython. Ce que je voudrais savoir, c'est: combien y a-t-il de frais généraux dans la création d'un nouveau moteur lors de chaque requête web, et serait-ce une meilleure idée de garder un moteur statique? Cependant, si je devais garder un seul moteur statique, quels sont les problèmes que je pourrais rencontrer en ce qui concerne le verrouillage et la portée du script? Est-il possible d'avoir plusieurs étendues dans le même moteur IropPython afin de ne pas avoir de problèmes de collision et de sécurité entre les requêtes Web?Scripts Eval IronPython au cours de la requête Web ASP.NET; Moteur statique ou non
2
A
Répondre
3
Je viens de commencer à utiliser IronPython comme point d'extensibilité dans mon application ASP.NET MVC. J'ai un moteur d'ipy (dans la propriété statique) et pour chaque demande je crée la nouvelle portée et exécute le manuscrit dans cette portée.
Chaque étendue doit être indépendante sur d'autres portées, aucun verrouillage n'est nécessaire.
Si je rencontre des problèmes, je l'afficherai ici. Cependant, je ne m'attends à aucun;)
C'est certainement l'approche recommandée. Les ScriptEngine ne sont pas très chers par eux-mêmes mais le code de compilation est assez cher. Si vous réutilisez le même objet CompiledCode, vous économiserez beaucoup, surtout si vous avez la librairie standard Python qui importe environ 10 fichiers au démarrage. –