У нас есть приложение, которое в определенное время должно выполнять «задачи», чтобы выполнить некоторую работу. Эти задачи в настоящее время являются просто командами (читай: неуместные VB-скрипты), которые запускаются, а затем отслеживают процесс на предмет завершения или прерывания, если он «истекает», однако у нас недостаточно контроля над выполнением.
Я хотел бы интегрировать механизм сценариев или узел сценариев, чтобы мы могли выполнять сценарии в нашем приложении (если это возможно, в другом домене приложения) и сохранять некоторый контроль над ними. Я предполагаю, что у нас есть сценарии, которые следуют интерфейсу, подобному следующему:
void Initialize();
void Destroy();
void Execute();
void Abort();
int GetProgress();
Конечно, вышеприведенное, вероятно, не то, что было бы в коде, однако вы понимаете, что ... По сути, из нашего приложения мы можем вызвать Initialize
, затем Execute
, опрос GetProgress
до возвращаемого значения равно 100 или что-то еще, затем в конце либо позвоните Destroy
или Abort
, либо Destroy
, если нам нужно отменить, либо оно прошло больше времени ожидания.
Главное, что должны быть в состоянии выполнить сценарии, - это запросы AD и взаимодействие с командной консолью (например, подключить сетевой диск или отключить один).
Я рассмотрел несколько вариантов для этого - тот, который я реализовал в прототипе, использует Boo в качестве языка и по существу загружает скрипт на лету, чтобы компилировать и выполнять как «сборку» в памяти. Мне нравится, как это работает, но я не уверен, насколько хорошо это было бы принято, если бы не был «хорошо известным» языком и т. Д.
Другие варианты, на которые я смотрю, это Python (IronPython), Ruby (IronRuby), PowerShell и, возможно, VB, но я не уверен насчет простоты реализации с VB.
Какие-либо мнения, комментарии, предложения или даже ресурсы, которые могут указать мне правильное направление?