12

因此,在我激怒 SO 纯粹主义者之前,我知道何时使用 Powershell 与 C# 进行开发?. 然而,我相信从那时起,最先进的技术已经发生了变化。

因此,首先从上一个 Powershell 与 C# 问题中得到的最大收获是,Powershell 本质上是一种解释语言,而 C# 是一种编译语言。

然而,我觉得随着罗斯林的成熟,这个论点将站不住脚。

那我为什么要学习Powershell。鉴于:

  • C# 可以(理论上)在解释环境中运行。
  • C# 有更好的工具支持(例如 Resharper)和文档
  • C# 有很好的错误检查(编译器)
  • 我已经知道 C#
4

3 回答 3

12

我认为人们需要在这个问题上跳出思维定势。停止尝试将 PowerShell 与 C# 或作为替代品进行比较,与其说是替代,不如说是补充它。

我是一名 DBA,但越来越多的人发现自己在做类似开发人员的任务,以使我的工作更加自动化。我目前正在为我工​​作的公司开发一个评估工具,它现在是用 PowerShell 编写的。

PowerShell 由 Microsoft 创建,并且在管理员或管理应用程序(SharePoint、Exchange、AD 等)的人员中越来越流行。在这种情况下,现在学习和使用 PowerShell 已成为一种要求。微软已经声明,任何为 Windows Server 推出的产品都必须具有 PowerShell 功能,并且 GUI 界面必须在下面使用 PowerShell(找不到源,但已经阅读并听说过)。

我最近一直在阅读这本面向开发人员的 Windows PowerShell,发现作者在他的开发工作中使用它非常有趣。最多花点钱买一本电子书并通读一遍是值得的。

我认为开发人员会从 PowerShell 中受益的几点(至少如果我全职这样做的话):

  1. 它允许您更快地在程序中编写较小的任务(例如,遍历文件中的数据、在 Windows 文件系统中搜索文件等)。
  2. 我认为它可以用作一致性的部署工具。您实际上可以在 PowerShell 控制台中编译代码,因为它基于并且可以访问 .NET 结构。
  3. 如前所述,如果您想为帮助台编写一个小程序,例如 Active Directory,您可以使用 PowerShell 命令行开关对 AD 执行命令和任务,这比尝试绑定到所有 .NET 类要容易得多。命令行开关已经具有帮助台用户可以使用的绑定和标准命令。
于 2013-08-19T04:59:07.197 回答
5

To be precised PowerShell is much more for admins. It is because it gives similar tool (cmdlets) to manage different systems

But PowerShell is also very useful for developers when they are working on for example filesystem. Last week I had to find same string in many .NET solutions. Using 3 cmdlets I found what I needed in a second. Developing same in C# will take much time

于 2013-08-19T04:55:24.473 回答
4

因此,您可以管理任何 Windows 服务器工具,例如

  • 交换
  • Sql 服务器
  • 共享点
  • 活动目录
  • TFS

这样您就可以部署和管理您的 Azure 服务,因此您可以部署和管理您的 AWS 服务,确实有很多原因

于 2013-08-19T04:42:19.737 回答