代码之家  ›  专栏  ›  技术社区  ›  Matthew Savage

应用程序脚本引擎主机

  •  2
  • Matthew Savage  · 技术社区  · 16 年前

    我们需要在某些时候执行应用程序。这些任务目前只是命令(读:狡猾的VB脚本)被触发,然后监视进程是否完成,或者如果它“超时”就中止,但是我们对执行没有足够的控制。

    我想集成一个脚本引擎或脚本主机,使我们能够在我们的应用程序中执行脚本(如果可能的话,在另一个appdomain中)并保持对它们的控制。我设想我们有一些脚本,其界面类似于:

    void Initialize();
    void Destroy();
    void Execute();
    void Abort();
    int GetProgress();
    

    当然,上面的内容可能不是代码中的内容,但是你应该明白。。。基本上从我们的应用程序中我们可以调用 Initialize ,那么 Execute ,投票 GetProgress Destroy Abort 如果我们需要取消或者超过了超时时间。

    脚本需要能够做的主要事情是广告查询,并与Shell交互(例如映射网络驱动器,或者断开一个)。

    我正在考虑的其他选项有Python(IronPython)、Ruby(IronRuby)、PowerShell,也许还有VB,但我不确定用VB实现的难易程度。

    有没有什么意见、意见、建议甚至资源可以帮我找到正确的方向?

    3 回复  |  直到 16 年前
        1
  •  3
  •   Javier    16 年前

    Lua 完全是为嵌入到应用程序中而设计的。它是一种非常简洁和高效的语言,这一点也不碍事。

        3
  •  0
  •   dan-gph    15 年前

    如果您希望其他人为您的系统编写脚本,那么PowerShell可能是一个不错的选择。根据我的观察,人们对学习PowerShell的抵抗力要小于对Python的学习。这可能是因为PowerShell带有微软的批准标志。在微软的商店里,Python可能被视为太过异国情调,而Ruby则更是如此。

    微软世界里的每一个人——无论是程序员、QA人员、支持人员、超级用户——都会从学习PowerShell中获益,这很容易。很容易证明,学习PowerShell将与他们自己的利益相一致。命令行.exe将被淘汰。每个人迟早都会学习PowerShell的。

    这就是为什么我认为PowerShell是一个不错的默认选择。

    当然,很大程度上取决于特定的要求。

    一个好的测试可能是用每种候选语言编写一个典型的脚本,看看哪一种是最自然的。听起来PowerShell很适合你所描述的。但是如果脚本非常“算法化”,那么Python或Ruby会更好。如果需要速度,我相信IronPython比PowerShell快得多。(我不知道IronRuby)等等。

    更新: 我只是有一个深刻的想法:)嵌入式脚本语言是用户界面的一部分。也就是说,这是一个用户界面问题。你应该从用户的角度选择使用哪一个。