【发布时间】:2010-10-01 01:40:29
【问题描述】:
我们有一个应用程序,它在某些时候需要执行“任务”才能完成一些工作。这些任务目前只是命令(阅读:狡猾的 VB 脚本)被触发,然后监视进程是否完成或如果“超时”则中止,但是我们对执行没有足够的控制权。
我想集成一个脚本引擎或脚本主机,以使我们能够在我们的应用程序中执行脚本(如果可能的话,在另一个应用程序域中)并保持对它们的一些控制。我设想我们的脚本遵循类似于以下界面的脚本:
void Initialize();
void Destroy();
void Execute();
void Abort();
int GetProgress();
当然,上面的内容可能不是代码中的内容,但是您明白了...基本上从我们的应用程序中,我们可以调用Initialize,然后调用Execute,轮询GetProgress,直到返回值是 100 或其他值,然后在最后调用 Destroy 或 Abort 然后 Destroy 如果我们需要取消或超过超时期限。
脚本需要能够做的主要事情是 AD 查询,并与 Shell 交互(例如,映射网络驱动器或断开连接)。
我已经研究了一些选项来执行此操作 - 我已经实现了一个使用 Boo 作为语言的原型,并且本质上是动态加载脚本以在内存中作为“程序集”进行编译和执行。我喜欢它的工作方式,但我不确定它不是“众所周知”的语言等会被接受的程度如何。
我正在考虑的其他选项是 Python (IronPython)、Ruby (IronRuby)、PowerShell,也许还有 VB,但我不确定用 VB 实现的难易程度。
有任何意见、cmets、建议甚至资源可以为我指明正确的方向吗?
【问题讨论】:
标签: scripting