Мои пользователи хотят написать и добавить « хранимые процедуры » (не SQL) в нашу систему.Эти процедуры содержат пользовательскую логику в пользовательских функциях , работают с объектами памяти, используют сложные структуры данных , такие как списки, структуры, словари.Сценарии создают XML-файлы в памяти.
Сценарии не проверяются другими пользователями - подсистема выполнения должна гарантировать, что сценарий не сможет причинить вред серверу .Недопустимо, чтобы скрипт обращался к внешним ресурсам (файловая система, база данных sql и т. Д.), Но должен использовать общедоступный API приложения - лучший способ - использовать методы экземпляров пользовательских объектов.Таким образом, сценарии должны сообщать об окружающей среде во время выполнения, но только контролируемым образом.Не может съесть всю память, не может работать вечно.
Сценарии могут записывать выходные сообщения, которые должны быть записаны и отображены.Было бы счастьем, если есть способ как-то отладить выполнение скрипта.
Я новичок в этом проблемном пространстве.Язык сценария не указан, может быть python, powershell, C # script, что угодно.Я нашел CSharpScript (https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples) во время фазы исследования, но я не уверен, что это будет лучшим выбором. Кто-нибудь знает, с чего лучше начать? Как мы должны решить эту проблему - как мы не хотимнаписать язык сценариев, определить синтаксический анализатор и выполнить скрипт самостоятельно. Спасибо за предложение!