【问题标题】:When to develop using Powershell vs C#?何时使用 Powershell 与 C# 进行开发?
【发布时间】:2010-11-15 19:12:42
【问题描述】:

我刚刚开始使用 PowerShell,我的一位系统管理员告诉我,Powershell 在系统管理方面的功能与 C# 一样多,甚至更多。

请原谅我对这个问题的无知,但是我什么时候可以使用 Powershell 而不是 C#?

【问题讨论】:

  • 相当多的帖子已经在 SO 上的两者的比较...

标签: c# powershell administration system-administration


【解决方案1】:

1) PowerShell 适用于相对较小且定义明确的任务,尤其是当您在命令行中直接编码时的短暂一日任务和交互式任务。如果一项任务只需要几行 PowerShell 代码(您知道这一点是因为您对 PowerShell 足够了解!),那么启动一个完整的 C# 项目通常是多余的。

2) C# 对于大型项目或性能至关重要的地方要好得多。它更适合任何可能需要调试和故障排除的项目。

3) PowerShell 和 C# 可以完美地协同工作。互相打电话很容易。 PowerShell 非常适合连接 .NET 组件。您可以在 C# 中实现复杂的性能关键部分,然后使用 PowerShell 将这些部分组合和粘合在一起。

【讨论】:

  • 我不同意第 2 点的第二部分。PowerShell 具有可观的本机调试工具,并且所有现代脚本编辑器都可以很好地实现它。
  • 我知道答案已经很老了,但对于第 1 点,它指出“......然后启动一个完整的 C# 项目通常是矫枉过正。”。如果您需要一个快速(通常是肮脏)的解决方案,您可以使用Linqpad
  • 在 2020 年,我同意 xcud 的观点,即 VS Code 在调试 Powershell 方面非常出色。它是 Windows 10 开箱即用的“板工具”,并具有 PowerShell 插件。
【解决方案2】:

很久以前(1997 年)我在 Windows 构建实验室工作时,有人告诉我,如果代码满足这两个条件中的任何一个,则将其写入解释脚本,否则将其写入编译代码:

  1. 开销比代码多(使用/包含行、函数声明等)
  2. 代码在再次运行之前发生更改的可能性超过 10%

【讨论】:

    【解决方案3】:

    从基础架构的角度来看,Hyper-V 在虚拟化市场上的规模越来越大,就市场份额的增长而言,它每年都在超过 VMWare。关于 SCVMM 自动化,如果您想利用 VMM 功能来管理运行不同 hypervisor 的多台主机,VMM powershell 接口是唯一的选择。

    【讨论】:

      猜你喜欢
      • 2019-08-30
      • 2013-12-13
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多