【问题标题】:If Powershell is built on top of .Net, what is the reason to write scripts instead of C# code? [closed]如果 Powershell 构建在 .Net 之上,那么编写脚本而不是 C# 代码的原因是什么? [关闭]
【发布时间】:2012-12-03 22:18:48
【问题描述】:

作为一个刚接触 Powershell 的人,我一度不是 100% 清楚:

如果

"在 PowerShell 中,管理任务通常由 cmdlet(发音为 command-let),专门的 .NET 类 执行特定操作。”

编写脚本而不是使用这些类编写 .Net 可执行文件并将它们编译为控制台应用程序的原因是什么?

【问题讨论】:

  • 少仪式...
  • 如果我是 C# 人,在这种情况下,我不需要费心去学习新的语法,而我可以在 C# 中做同样的事情,对吧? (可能我的假设中遗漏了一些东西?:))
  • ...在最初开发 PS 时,C# 不支持这些功能。
  • @pencilCake 你总是可以在 C# 中做到这一点,你使用 PS 是用一行代码而不是 50 行来完成。
  • 这就像在问“如果批处理/cmd脚本是在Win32上构建的,那么编写脚本而不是C++代码的原因是什么?”

标签: c# .net powershell build ildasm


【解决方案1】:

您可以很容易地问这个问题,当您可以在 PowerShell 中轻松创建完全成熟的桌面和服务器软件时,为什么要在 .NET 中编写应用程序?

有理由在不同的情况下同时使用这两种方法。 PoSH 脚本本身就是简单的小文本文件,非常容易编写和维护。作为一个同时涉足两者的人,我想说在很多情况下,使用快速生成的 PoSH 脚本比使用 .NET 应用程序更容易完成系统维护任务。

也就是说,有些事情在 .NET 中更容易完成(我自己使用 C#),但开发这些事情的过程要麻烦得多,并且需要额外的技能,这在 SysAdmin 中并不常见。

简单地说,PoSH 面向系统管理员,.NET 面向开发人员,但这并不是说没有交叉空间。

【讨论】:

    【解决方案2】:

    我完全同意@Matt G 的回答。

    我只想补充一件事,那就是围绕文化。 Windows SysAdmins 文化更多的是“点击”驱动(由图形用户界面管理)而不是编程驱动。

    我曾经在 Unix 世界中工作,在那里,系统管理员可以为脚本编写者(sh、csh、ksh ...)提供支持,并且在需要时,他们可以在桌子的一角编写一个小的“C”程序(以提高性能) ,或充当复杂的文件过滤器等)。

    自 .NET (2001) 开始以来,Windows 系统管理员可以使用 C# 编译器(可从 .NET 目录中以 CSC.EXE 的形式获得),因为 Linux 或 Unix 可以使用“cc”编译器,但它们不能。最好的是使用 WSH(Window Script Shell),但 VBScript 不是那么容易使用,需要为每种情况发现不同的 COM 对象。

    Microsoft,增加多种方式来敦促 Windows 系统管理员使用命令行和脚本(WSH、netsh、wmic 等)。几年来(2006 年),Microsoft 决定亲自接管系统管理员,并为他们提供了一个 Power 工具,从用户界面中移除了权力(Exchange 2007)。所以现在 SysAdmin 除了使用 PowerShell 之外什么也做不了。但由于他们不是 devolppers,所以语言被解释了,“对象文化”在某种程度上对初学者来说是隐藏的。

    现在优秀的 Windows 系统管理员可以开发自己的 C# 类并将它们内联到他们的 PowerShell 脚本中,系统管理员不是开发人员,他们只需要自动化他们的过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      相关资源
      最近更新 更多