您是否会推荐使用Iron Ruby,Iron Python或PowerShell来使C#应用程序成为脚本宿主?

Eva*_*van 11 c# powershell ironpython ironruby dynamic-language-runtime

您是否会推荐使用Iron Ruby,Iron Python或PowerShell来使C#应用程序成为脚本宿主?

经过一些快速的修补,现在我倾向于PowerShell有两个主要原因(注意这些纯粹是我的意见,如果他们错了,我很想知道!!!):

1)在应用程序中创建包含类的运行空间很简单; 因此,您可以轻松地编写应用程序脚本.

2)我听说有一些传言说IronRuby和IronPython正在失去微软的支持,所以他们可能是一个糟糕的长期解决方案?

由于这是我第一次在应用程序中添加脚本,我欢迎所有可以从以前走过这条路的人那里得到的建议.

具体来说,除了让我知道你是否同意我的上述两点之外,我想知道IronRuby和IronPython是否比PowerShell更容易使用(对于用户而不是开发人员),如果您使用DLR的经验是就像将对象传递给powershell运行空间一样简单?如果我添加了对DLR和IR/IP脚本的支持,我的应用程序是否仍然可以向后兼容XP?

Jay*_*kul 11

我不相信PowerShell在其长期目标中的任何地方"都是应用程序的脚本语言".它首先是一个shell,第二个是集成和自动化引擎,第三个是shell脚本语言......因为它根本不可再发行,我不确定嵌入式脚本在哪里适合.

托管PowerShell当然非常容易 - 假设它已预先安装在目标PC上 - 所以这是一个非常可行的选择,但我认为通常使用IronRuby或IronPython这样做很容易.

我怀疑DLR本身是否会消失,所以我认为使用DLR语言仍然是一个很好的选择:你可以轻松地接受其他DLR语言,并且DLR和语言是可再发行的.

此外,托管PowerShell的工作只能让您获得PowerShell - 而您可以利用相同的工作来使IronPython和IronRuby正常工作.谁知道,因为PowerShell是一种动态语言,它可能会在未来版本中以适当的动态支持移植到DLR ......但它不太可能是可再发行的,因为微软并不认为它是开发工具,而是操作系统的核心部分.

结论:使用DLR更加便携 - 不仅仅是XP,甚至是Mono(因此也适用于Linux,OS X,iOS,Android等......甚至通过Silverlight连接到Web或Windows Phone).

  • 实际上,作为应用程序管理和自动化的脚本语言是PowerShell团队提出的主要目标之一.虽然我不同意你的其他观点,但只要PS存在,使用PS这种方式几乎肯定会得到支持和改进.话虽如此,我对powershell的redist政策和实践感到困惑. (2认同)

Jam*_*ing 6

2号是真的(动态郎队现在已经失去了一段时间的人数)和一个很好的理由.Ruby和Python不是MS语言,因此Iron*只是"让它在.NET上工作".PowerShell是Microsoft创建的,由Microsoft控制,并且由Microsoft支持.

更重要的是,多个Microsoft产品已经深深依赖PowerShell(Exchange,SharePoint等),因此PowerShell作为一种语言的持续支持几乎没有问题.

最后,PowerShell将其他应用程序的脚本信息视为其一流的支持目标之一.